0

我知道您不能将 load 事件与委托函数一起使用,但是我想知道是否有黑客可以产生类似的效果?我想使用“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上找到

注意:我需要使用委托,因为可能会在运行时添加其他表(在 $(document).ready 之后)

4

2 回答 2

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
    }); 
}

更多的是一个概念,而不是一个可行的解决方案。希望能帮助到你。

于 2012-04-16T09:19:01.483 回答
0

Webkit 会抛出一些 DOM 突变事件,但我认为这些甚至已经贬值了。

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

$("[data-roll=table]").livequery(function() {
     ...
});

每当将与您的选择器匹配的新元素添加到页面时,都应该触发该回调。

于 2012-04-16T13:37:21.727 回答