[英]jQuery .on change event binding but not firing
var myTimelineVis = {
loadData: function(visItems, visContainer, visOptions, visTimelines) {
$.getJSON('myURL/' + $(this).val(), function(data) {
visItems.clear();
$.each(data, function(i, imp_sched_events) {
$.each(imp_sched_events.items.timeline_dataset, function(i, item) {
visItems.add(item);
if ($(visContainer).is(':empty')) {
visTimeline = new vis.Timeline(visContainer, visItems, visOptions);
} else {
visItems.update(item);
}
visTimeline.fit();
$('.vis-item-content').foundation();
});
});
});
},
setData: function(selectClass) {
var visItems = new vis.DataSet(),
visContainer = document.getElementById('visualization'),
visOptions = {},
visTimeline = '';
$(selectClass).on('change', function(visItems, visContainer, visOptions, visTimelines) {
this.loadData(visItems, visContainer, visOptions, visTimelines);
});
}
}
$(document).ready(function() {
myTimelineVis.setData('select.implementation_schedule');
});
I am trying to trying to create a vis timeline on page load and then load data onto it when my select changes (I have two selects). 我试图在页面加载时创建一个vis时间轴,然后在我的选择更改时将数据加载到它(我有两个选择)。 On page load, I can see the change event binding to both selects within Chrome console, but nothing happens, not even an error, on the actual select change. 在页面加载时,我可以看到在Chrome控制台中将更改事件绑定到两个选择,但是在实际选择更改上什么也没有发生,甚至没有错误。 It just acts like they don't exist. 就像它们不存在一样。
Is this is a scope issue? 这是范围问题吗?
For jQuery, the listener would not be added in an Ajax call, but in the $(document).ready(). 对于jQuery,侦听器不会添加到Ajax调用中,而是添加到$(document).ready()中。 It works differently than vanilla JavaScript. 它的工作方式不同于普通JavaScript。
If the select is dynamically changed you would need to use the following syntax with a hard-coded selector. 如果选择是动态更改的,则需要对硬选择器使用以下语法。 The selector can be broad like "#myForm select". 选择器可以像“ #myForm select”一样广泛。 There's no need to use a variable. 无需使用变量。
$(document).on('change', '.selectClass', function(visItems, visContainer, visOptions, visTimelines) {
this.loadData(visItems, visContainer, visOptions, visTimelines);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.