为什么javascript不能通过jQuery的.load()函数加载到页面上?

时间:2011-01-27 05:26:18

标签: jquery

我有一个突出显示表单字段javascript,链接在我的filea.php的头部。我正在加载另一个名为fileb.php的文件,其中包含一个表单。现在虽然filea.php已经引用了带有高亮表单字段代码的外部javascript,但是加载页面的字段在选中时不会变亮,即js对加载的页面没有任何影响。

如果我在加载的页面上引用外部js文件,它可以正常工作。但我为什么要这样做?例如,fileb.php上没有引用css,但该页面上的表单根据filea.php上引用的样式表进行样式设置。为什么脚本不一样?

P.S。我正在执行.load函数之前加载外部js文件,这应该不是问题。

1 个答案:

答案 0 :(得分:0)

狂野猜测:当filea.php中的JavaScript加载并运行时,fileb.php中的HTML不存在,因此JavaScript无法对其执行任何操作。您可以使用.live().delegate()来连接,否则您必须使用回调手动执行.load()的HTML上的JavaScript:

$(stuff).load('fileb.php', function() {
    // The new HTML has been loaded into "stuff"
    // so you can run the JavaScript to bind whatever
    // it is that you're doing to the new HTML elements.
});

如果您正在做的不仅仅是添加事件处理程序,那么.live().delegate()可能无效,您必须使用.load()上的回调作为上方。

进一步阅读: