jQuery和js文件没有加载?

时间:2010-10-15 12:16:39

标签: javascript jquery

我需要每隔几秒动态更新一次内容,而不重新加载页面,所以我想使用jquery load()函数,这会加载内容很好但不会从head标签加载js或jquery文件。

以下是示例代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <title>{$PAGE_TITLE}</title>
            <link rel="stylesheet" type="text/css" href="../web/css/style.css" />
            <script type="text/javascript" src="../web/js/jquery-1.3.2.min.js" ></script>
            <script type="text/javascript" src="../web/js/wz_tooltip.js"></script>
            <script type="text/javascript" src="../web/js/tip_centerwindow.js"></script>  
            <script type="text/javascript" src="../web/js/tip_balloon.js"></script> 
            <script type="text/javascript">
            {literal}
                $(document).ready(function() {
                   setInterval(function(){
                       $("#content").load("load_contents.php");
                   },20000);
                 ......
                });
            {/literal}
            </script>
        </head>
        <body>
           <div class="content">

           </div>
        </body>
    </html>

建议我解决方案......

更新:工具提示js未加载,是吗?...

2 个答案:

答案 0 :(得分:0)

我找不到引用,但是会自动禁用页面中加载的任何javascript以防止冲突。如果您需要对加载的内容执行某些操作,我建议您使用主页上的live()delegate()来处理已加载的内容。

答案 1 :(得分:0)

我同意关于使用live(如果可能的话,委托不是1.3.2中的选项)的愚蠢。如果你的插件不支持那个(我猜它没有,因为它不起作用),你可以将一个函数传递给.load,它将在加载内容时运行。在这里,您需要将这些新元素连接到您的插件。例如,所以例如说你想在内容中的所有div上使用jQuery UI中的draggable,你可能会这样做

 $(document).ready(function() {
      var init = function(){
          $("#content div").draggable();
      };
      init();
      setInterval(function(){ 
           $("#content").load("load_contents.php", init)
       },20000);                 
 });

如果你使用工具提示插件和其他任何东西,你正在重新加载到内容,它应该工作。小心只对#content中的内容调用init方法,这样就不会最终将工具提示两次添加到其他区域。使用一个使用委托(升级到最新的jQuery)或live的插件将避免每次添加元素时进行选择和重新绑定,从而加快重新加载。