Rig*_*gil 2 javascript jquery callback
使用Javascript:
$('#pagination-demo').twbsPagination({
totalPages: 35,
visiblePages: 7,
onPageClick: function (event, page) {
console.log('Why does this run on load?');
}
});
Run Code Online (Sandbox Code Playgroud)
标记:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="http://esimakin.github.io/twbs-pagination/js/jquery.twbsPagination.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<ul id="pagination-demo" class="pagination-sm"></ul>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
JS Bin在这里:http://jsbin.com/potekina/1/edit
在onPageClick回调中,我登录到控制台"为什么这会在加载时运行?" 我不明白为什么代码在加载时运行,如果它只在链接被点击时发生.为什么它在负载下运行?
dry*_*obs 10
可以在init中添加一个选项:
$('.pagination').twbsPagination({
initiateStartPageClick: false
});
Run Code Online (Sandbox Code Playgroud)
从来源:
init: function (options) {
...
this.$element.bind('page', this.options.onPageClick);
...
this.$element.trigger('page', this.options.startPage);
}
Run Code Online (Sandbox Code Playgroud)
twpsPagination 插件显然是onPageClick在 init 中触发的。这是插件的特性,而不是代码中的异常。我们无法回答作者对设计选择的推理是什么。
据推测,该事件旨在用于发布页面渲染设置,并且他们猜测它与设置初始页面和后续页面加载一样相关,但我会给你“页面点击”有点那么用词不当。
如果您真的想让脚本仅在实际页面点击时运行,则必须执行一些解决方法,例如变量:
var firstPageClick = true;
onPageClick: function() {
if(firstPageClick) {
firstPageClick = false;
return;
}
// actual event listener
}
Run Code Online (Sandbox Code Playgroud)