我有通过Ajax加载的PHP文件的内容,其中包含HTML和JavaScript.我有一个按钮:
<button class="search_button">Search</button>
<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).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。