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