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');
});
我试图在页面加载时创建vis时间轴,然后在选择更改(我有两个选择)时将数据加载到它上面。在页面加载时,我可以在Chrome控制台中看到更改事件绑定到两个选择,但实际选择更改没有任何反应,甚至没有发生错误。它只是表现为他们不存在。jQuery .on更改事件绑定但未触发
这是一个范围问题?
那么他们存在,当你绑定事件? 'console.log($(selectClass).length)' – epascarello
注意,只有一个参数(Event对象)被传递给事件处理函数'.on('change',function(visItems,visContainer,visOptions, visTimelines){...}''''''''''''''''''''''''''''''''''''''''''检查[on](http://api.jquery.com/on/)查看,如何传递参数 – Teemu
您是否正在尝试$(selectClass).change();' – Shanimal