<script>
function open1(pa1,pa2,fn) //fn是要回调执行的函数
{
$("#B").show();
$("#B")[0].fn = fn; //这样传递
return true;//这句不能省略
}
function close1(res) //我希望res能够作为open里fn回调函数的参数
{
$("#B").hide();
$("#B")[0].fn(res); //这样调用
return true;//这句不能省略
}function show(da) {
open1("", "", function (da) {
alert(da);
});
}</script>
<div id="A">
<input type="button" value="1111111" onclick="show()"/>
</div>
<div id="B" style="display:none;">
<input type="button" value="222222" onclick="close1('dsaa')" />
</div>
function open1(pa1,pa2,fn) //fn是要回调执行的函数
{
$("#B").show();
$("#B")[0].fn = fn; //这样传递
return true;//这句不能省略
}
function close1(res) //我希望res能够作为open里fn回调函数的参数
{
$("#B").hide();
$("#B")[0].fn(res); //这样调用
return true;//这句不能省略
}function show(da) {
open1("", "", function (da) {
alert(da);
});
}</script>
<div id="A">
<input type="button" value="1111111" onclick="show()"/>
</div>
<div id="B" style="display:none;">
<input type="button" value="222222" onclick="close1('dsaa')" />
</div>
解决方案 »
- 怎么用Js 读取本地TXT文件保证格式不变?
- js刷新在不同浏览器的使用
- 用javascript脚本,如何做成可执行文件?
- 怎样阻止连续执行方法
- 为什么说JS中的函数是数据类型
- 下面的除了IE,NS支持吗?
- 急问!关于获取框架内的对象?
- 字符截起或是替换问题!
- 想学点JavaScript,可是我就是不知道为什么仅仅光 checkbox 就搞的我头大?如果还有人给点信心的话,就先谢过了.
- 请问如何去除,文本框中的余留内容???93分
- extjs 使用tabpanel加载进来一个页面,但是被加载的这个页面里的js不会执行怎么回事啊?
- 大大们来帮我解决这个疑惑(有关'函数作用域'和数组的'forEach()')
但是能不能扩展一下呢,就是A存在,B是后来动态添加上去的。这个如何搞,我原本发帖的时候没想到这个,我以为说动态添加的,一会我让他动态添加完成之后在绑定那些什么回调。现在弄了一下发现不是这样的。模型:
这个是jquery mobile的框架,当一个<a>标签的href属性设置路径时,会跳到指定的页面,这个页面会以DIV的形式保存在主页面,当在打开另外一个的时候,同样会以DIV的形式保存在主页,就是这两个页面都在一个主页面,类似于iframe。
所以我的做法是:function openWeb(ob, url, fn) {//这个函数绑定在a标签的onclick
ob.href = url;
return true;//点击的时候,先执行onclick然后在执行herf的属性,所以我上面说这个return 不能去掉现在的问题是:虽然两个页面是在一个主页面上的,但是这个时候,执行openWeb的时候 B页面还没有在页面上,等return之后在附加到主页上,所以如果用 $("#B")[0].fn这个时候还没有这个元素真的抱歉,我发帖的时候没考虑那么深,我以为就类似两个DIV隐藏,显示就回调的。如果按照这个情况,在openWeb的时候传递的fn能不能保存在一个top.window里面,然后打开b的时候在绑定,还是怎么样,
这种情况还能弄么具体参照我另一帖:
http://bbs.csdn.net/topics/390992945
因为jquery mobile用href打开的页面会以div保留在主页面上,
如果window.location.href重定向,就直接跳到另一个页面去了,之前那个也没了
如果 执行到 open1 时 $("#B") 不存在,那么你的整个思路就是错误的
尽管 $("#B") 是动态加载的(比如通过 ajax),那么设置回调函数的动作也是在加载完成后进行的(比如 ajax 的 success 方法中)
var fnCallBack=[]; //在主页面Default.aspx里面加一个全局变量function openWeb(ob,url,isLeave ,fn)
{
isLeave = isLeave==undefined ? true : isLeave;
//先获取文件名字
var name = url.split("/");
name = name[name.length - 1];
name = name.split('.');
name = name[0];//文件名字,不带扩展
if (url.indexOf('?') != "-1") { //带参数
url += "&Pid=" + name + "&rMov=" + isLeave;
} else {
url += "?Pid=" + name + "&rMov=" + isLeave;
}
if ($("#" + name).length != 0) {
ob.href = "#" + name + "?" + url.split("?")[1];
} else {
ob.href = url;
}
top.window.fnCallBack.push(fn); //你那个传值,我把他保留在最主的页面去了
return true;
}function backWeb(ob,res)
{
$(ob).attr("data-rel", "back");
res = res == undefined ? "" : res;
top.window.fnCallBack.pop()(res);
return true;
}
这个是jquery mobile自己加载的,页面是加载完成之后才显示的,至于他什么时候加载完成,我也不知道他有什么回调方法在加载完成的。我觉得这无所谓了,因为这个页面他加载不完成,那这个页面都没显示,所以那些按钮也不存在。
等页面加载完成之后 才出现按钮,这个时候对象也有了,调用应该也没有错了