jquery load方法把一个页面载入到主页面的一个div中替换iframe

来源:互联网 发布:竞彩足球奖金优化 编辑:程序博客网 时间:2024/05/22 15:23

jquery load方法把一个页面载入到主页面的一个div中,载入页面的javascript消失了 


如果绑定给window对象,则会在所有内容加载后触发,包括窗口,框架,对象和图像。如果绑定在元素上,则当元素的内容加载完毕后触发。

注意:只有当在这个元素完全加载完之前绑定load的处理函数,才会在他加载完后触发。如果之后再绑定就永远不会触发了。所以不要在$(document).ready()里绑定load事件,因为jQuery会在所有DOM加载完成后再绑定load事件。

 

调用load方法的完整格式是:load( url, [data], [callback] ),

其中:

 

  • url:是指要导入文件的地址。
  • data:可选参数;因为Load不仅仅可以导入静态的html文件,还可以导入动态脚本,例如PHP文件,所以要导入的是动态文件时,我们可以把要传递的参数放在这里。
  • callback:可选参数;是指调用load方法并得到服务器响应后,再执行的另外一个函数。

  • 1、index.html里面有两个div,一个是id是menu,另一个是work,代码如下 

    <html> 
    <head> 
       <script type="text/javascript" src="jquery.js"></script> 
       <script type="text/javascript" src="index.js"></script> 
    </head> 

    <body> 
    <div id="menu"> 
    <input type="button" id="btnMenu" value="menu1"> 
    </div> 
      <div id="work"> </div> 
    </body> 
    </html> 

    2、在index.js中对btnMenu绑定事件 

    $(document).ready(function(){ 

    $("#btn1").click(function () { 
    $("#work").load("load.html"); 
    }); 
    }); 

    3、被载入的页面load.html只包含一个按钮,代码如下: 
    <html> 
    <head> 
       <script type="text/javascript" src="jquery.js"></script> 
       <script type="text/javascript" src="load.js"></script> 
    </head> 

    <body> 
    <input type="button" id="btn" value="menu1"> 
    </body> 
    </html> 

    4、在load.js中对btn绑定事件 
    $(document).ready(function(){ 

    $("#btn").click(function () { 
    alert("btn1"); 
    }); 
    }); 

    5、测试结果是,在IE6和firefox中都可以正常载入load.html,但firefox中点击load.html的按钮不会执行alert("btn1"),IE6可以。 

    6、问题是怎么样才能使firefox中也能执行btn的点击事件。好像所有在load.js里的代码都失效了。谢谢大家! 





    问题补充:
    把index.js和load.js合并成一个,2个页面共同调用 
    ////// 
    1、把index.js和load.js合并成一个,也必须在载入load.html后重新绑定事件才行。 
    2、如果要重新绑定,为了方便必须使用非匿名的function,管理这些非匿名function也是一个头大的问题,特别是当应用比较大的时候。 
    3、如果想针对load.html单独测试,就是不用index.html进行load直接测试load.html就没有办法了,因为load.html并不包含javascript(如果包含了IE会执行两次事件).
    0 0