为什么我的回调中的这段代码在页面加载时执行
Why does this code in my callback execute on page load?
Javascript:
$('#pagination-demo').twbsPagination({
totalPages: 35,
visiblePages: 7,
onPageClick: function (event, page) {
console.log('Why does this run on load?');
}
});
标记:
<!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>
JS Bin在此:http://jsbin.com/potekina/1/edit
在onPageClick回调中,我登录到控制台"为什么这会在加载时运行?"。为什么它在负载下运行?
在init:中添加一个选项
$('.pagination').twbsPagination({
initiateStartPageClick: false
});
来源:
init: function (options) {
...
this.$element.bind('page', this.options.onPageClick);
...
this.$element.trigger('page', this.options.startPage);
}
twpsPagination插件显然正在初始化中触发onPageClick
。这是插件的特性,而不是代码中的异常。我们无法回答作者对设计选择的推理。
据推测,该事件是用于页面后渲染设置的,他们猜测它与设置初始页面和后续页面加载一样重要,但我认为"页面点击"有点用词不当。
如果你真的想让你的脚本只在实际的页面点击时运行,你必须执行一些变通方法,比如一个变量:
var firstPageClick = true;
onPageClick: function() {
if(firstPageClick) {
firstPageClick = false;
return;
}
// actual event listener
}
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何在从浏览缓存加载页面时执行javascript
- Jquery:代码在rails中的页面加载时未执行
- 如何准确执行加载脚本&退出弹出窗口
- 页面在我的javascript执行后重新加载,我不希望它这样做
- 加载服务器端渲染的React组件后执行脚本
- jQuery-在页面加载时执行一个函数
- ajax加载了内容,脚本没有执行
- 如何在加载完整页面后严格执行javascript代码
- 在动态加载的对话框中执行Javascript
- Dojo AMD加载程序执行定义具有空/缺失依赖项的回调
- 通过AJAX加载页面并执行javascript和CSS
- 返回上一页,不加载执行正文
- 谷歌自定义搜索 - 从网址参数手动加载/执行
- jquery文档就绪侦听器与图像加载;执行顺序
- 发现jsphp加载/执行问题
- jQuery ready()是否在所有JS文件加载/执行后触发
- 如何在加载/执行页面的任何其他脚本之前将Javascript注入/执行到页面中
- 在视图页面加载执行控制器功能,angularjs方式