我重新编写了分页插件,当我使用显式 Id 绑定(bind)到插件时,它可以完美地工作。但是,当我使用类名绑定(bind)插件时,“页面选择”事件仅针对一个元素触发。
所以,我的问题是......
为什么两个元素都没有触发触发器?
需要明确的是...触发器引发两次,但绑定(bind)不会运行两次...这很明显,因为控制台仅写入一次!
代码位于:
The JS Fiddle
违规区域是:
<script type="text/javascript">
$(document).ready(function () {
var pageSize = 5;
$('.grid-bar-pager').pagination({
itemsPerPage: pageSize,
numberDisplayEntries: 10,
numEdgeEntries: 2,
maxEntries: 10
});
$('.grid-bar-pager').data('pagination').bind("pageSelected", function (event, args) {
console.log("pageSelected"); // <--- THIS ONLY FIRES once?
});
});
</script>
最佳答案
我现在看到问题了。您将像这样绑定(bind)事件处理程序:
$('.grid-bar-pager').data('pagination').bind( ... );
对.data()
的调用将仅返回第一个匹配元素的Controller对象。您应该在 .each()
循环中执行该绑定(bind),以便可以绑定(bind)到每个 Controller 对象:
$('.grid-bar-pager').each(function() {
$(this).data('pagination').bind( ... );
});
关于javascript - 为什么我的事件没有为两个订阅者触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9685243/