【发布时间】:2013-02-26 23:12:14
【问题描述】:
我有一张桌子,我需要在上面执行一项功能。虽然它位于搜索结果页面上,但在执行搜索(或加载另一页结果)后,div 内的内容会发生变化。不幸的是,我无法访问被调用来更改数据的 ajax 方法(它是一个在整个站点中全局使用的函数,无法更改到此页面)。
我想要做的是,每次 $("#search_results) div 更改时,我想循环遍历结果集,删除内联定义的 onclick 事件,并使用我自己的 onclick 函数。这里是一个示例(第一次加载页面时有效,但在 ajax 调用更改搜索结果后无效):
<script type='text/javascript'>
$(document).live(function(){
alert('fired');
$('table.lookup_table tr').each(function(){
$(this).removeAttr('onclick');
});
});
$('table.lookup_table tr').on('click', function(event){
event.preventDefault();
$(this).removeAttr('onclick');
var pacware = $.trim($(':nth-child(1)', $(this)).html());
var site = $.trim($(':nth-child(2)', $(this)).html());
window.location = '<?php echo matry::here_to('edit');?>&pacware_code=' + pacware + '&site_id='+site;
return false;
});
</script>
*另外,我需要这个才能在 IE 8 中工作 *
【问题讨论】:
-
html的哪一部分被其他代码替换了?
-
正在重新加载整个表,其中包含与搜索结果匹配的下 50 个值
-
在您真正想要做的事情之后,我真的很难过。请澄清,我相信我们可以帮助你。
-
另外,你提到的全局ajax调用并不少见,但是这个全局调用不接受回调成功函数吗?期望您作为开发人员从不使用 ajax 调用中的回调似乎有点荒谬。
-
我有一个通过 ajax 加载的表,每次加载该表时(搜索后),我想运行删除 onclick 属性的函数。然后我需要将我的新 onclick 绑定到每个 tr
标签: jquery dynamic event-handling