【问题标题】:Javascript won't execute after load加载后 Javascript 不会执行
【发布时间】:2010-02-01 11:25:55
【问题描述】:

我的网站包含链接,当我单击时,目标 HTML 内容使用 JQuery 加载到“div”中,到目前为止没有问题。

我的问题是当我下面的搜索页面第三次加载时,脚本不会执行:

<h1><span>Search</span></h1>
<p class="bigtext">Entity</p>
<input type="text" id="searchfield">
<p class="more">
    <a href="#">Find</a>
</p>
<p></p>
<div id="res"></div>

<script type="text/javascript">
    alert("hello");
</script>

请注意,该脚本第一次运行了两次,但第三次就不行了。我也尝试过改变位置等,但没有积极的结果。问题只出现在搜索页面,加载了 HTML 内容,我也看到了使用 Firebug 的脚本,但它不会执行 alert()。

我的一般加载到 div 脚本是这样的:

<script type="text/javascript">
$(document).ready(function()
{
    var page = "blog";

    $('a').click(function()
    {
        var id = $(this).attr("id");
        if ( id != null && id !="" )
        {
            page = "index.php/"+id;
            $("#inc").load(page);
        }
    });

    setInterval(function() {
        if (page=="index.php/toplist")
            $("#inc").load(page);
    }, 6000);
});
</script>

关于如何解决这个问题的任何建议?提前致谢。

// 雇佣

【问题讨论】:

  • 您是否尝试过使用其他浏览器?结果一样吗?

标签: javascript jquery load


【解决方案1】:

将带有&lt;script&gt; 元素的HTML 加载到页面中基本上是不可靠的。 jQuery 采取了许多步骤来尝试使其跨浏览器工作,但在某些情况下 jQuery 会失败。

所以不要依赖它。将您的脚本内容保留在基本脚本中,如有必要,在加载后从回调运行。

【讨论】:

  • 你能举个例子吗。
  • 这取决于你的代码在做什么。对于上面发布的基本案例,很容易在回调中发出警报:$("#inc").load(page, function() { alert('hello!'); });
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-09
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
相关资源
最近更新 更多