jQuery委托和加载事件

时间:2012-04-16 08:43:55

标签: jquery events delegates

我知道你不能将load事件与委托函数一起使用但是我想知道是否存在产生类似效果的hack?我想使用“data-role ='table'”属性来识别需要加载AJAX并初始化请求的所有表。

<script type="text/javascript">
$(document).delegate( "table[data-role='table']", "load", function(e) {
    //load AJAX Table
});
</script>

<table data-role="table" class="table-striped">
    ...
</table>

该代码也可在jsfiddle

上找到

注意:我需要使用委托,因为可能会在运行时添加额外的表(在$(文档).ready之后)

2 个答案:

答案 0 :(得分:0)

只是一个建议在我的头顶,但是如下:

$(function() { // document.ready shortcut
    $("[data-role=table]").each(function(x, item) { // for each element which has this attribute.
         // identify which actual table this is (using .index() perhaps, or by id or classname)
         // call ajax to get stuff
         // load it into the relevant place
    }); 
}

更多的概念而非工作解决方案。希望它有所帮助。

答案 1 :(得分:0)

Webkit会抛出一些DOM突变事件,但我认为它们甚至会被折旧。

它现在变得有点老了,但是.livequery(http://docs.jquery.com/Plugins/livequery)仍然是我所知道的最佳选择。您可以使用:

$("[data-roll=table]").livequery(function() {
     ...
});
只要将与您的选择器匹配的新元素添加到页面,

就会触发该回调。