jQuery.each()函数没有循环遍历按钮。
调试器在函数调用的第一行停止,但它没有 执行 函数
app.js包含以下each()函数:
$('.btn-group button[data-calendar-nav]').each(function() {
var $this = $(this);
$this.click(function() {
calendar.navigate($this.data('calendar-nav'));
});
});
$('.btn-group button[data-calendar-view]').each(function() {
var $this = $(this);
$this.click(function() {
calendar.view($this.data('calendar-view'));
});
});
HTML divs和按钮:
<div class="container">
<div class="pull-right form-inline">
<div class="btn-group">
<button class="btn btn-primary" data-calendar-nav="prev"><< Prev</button>
<button class="btn" data-calendar-nav="today">Today</button>
</div>
<div class="btn-group">
<button class="btn btn-warning" data-calendar-view="year">Year</button>
<button class="btn btn-warning active" data-calendar-view="month">Month</button>
</div>
</div>
</div>
初始化脚本:
<script type="text/javascript">
var calendar = $('#calendar').calendar({
events_source: [
{
"id": 293,
"title": "Event 1",
"url": "http://example.com",
"class": "event-important",
"start": 1437507900000, // Milliseconds
"end": 1437508639654 // Milliseconds
}
],
tmpl_path: "tmpls/"
});
</script>
*更新*
找到解决方案。问题是app.js(包含jQuery each()函数)是在头部声明的,但它需要在HTML和脚本之后声明才能正常工作。
订单错误:
良好的秩序:
答案 0 :(得分:1)
你的选择器还可以。
如果我做了
$('.btn-group button[data-calendar-nav]').each(function(index) {
var $this = $(this);
console.log($this.data('calendar-nav'));
});
我得到了
prev
today
next
所以你的问题在于使用calendar.navigate
如果我用firebug调试它,我得到TypeError: calendar.navigate is not a function
。
所以函数可能不知道你的变量calendar
。