我有一个通过 Ajax 加载的 php 文件的内容,其中包含 HTML 和 JavaScript。我有一个按钮:
<button class="search_button">Search</button>
我下面有一个脚本,它将通过 jQuery 函数更新文档哈希
<script type="text/javascript">
$(".search_button").click(function() {
var searchTerm = $('#search_box').val();
document.location.hash="searchTerm";
return false;
});
</script>
当我单独运行 php 文件时,此代码有效,但当从 Ajax 调用加载此页面时,该函数不再运行。在 firebug 中,脚本不存在,所以我假设我无法使用此方法加载脚本。我还尝试将 JavaScript 代码段放在整个网站的标题中,但这也失败了。
我还在想,当已经存在 search_button 类时,也许必须声明该函数,但是当我之前将它们放在一个文件中(通过 Ajax 检索)时,它是以这种方式构造的,但没有效果,所以我很困惑至于问题。
您可以将其包含在全球现场活动中:
$(".search_button").live('click', function() {
var searchTerm = $('#search_box').val();
document.location.hash="searchTerm";
return false;
});
jQuery 会自动评估脚本块,您在 HTML 中看不到该函数,因为它已被剥离。然而它应该已经运行了。问题很可能出在时机上。你可以做类似的事情
setTimeout(function(){
$(".search_button").click(function() {
var searchTerm = $('#search_box').val();
document.location.hash="searchTerm";
return false;
});
}, 500);
这样,当脚本加载时,它就会等待执行(希望给 jquery 时间来用新元素更新 DOM)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)