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');
});
私は、ページのロード時にタイムラインを作成しようとしていますが、select selectが変更されたときにデータをロードしようとしています。ページが読み込まれると、Chromeコンソール内の両方の選択項目に変更イベントのバインディングが表示されますが、実際の選択変更ではエラーが発生することはありません。彼らは存在しないように行動します。jQuery .onイベントバインディングを変更しても発火させない
これは範囲の問題ですか?
イベントをバインドするとどうなるのでしょうか? 'console.log($(selectClass).length)' – epascarello
イベントハンドラ関数 '.on( 'change')、function(visItems、visContainer、visOptions、 visTimelines){...} 'あなたが思うようにはできません。[on](http://api.jquery.com/on/)でパラメータを渡す方法を確認してください。 – Teemu
'$(selectClass).change();' – Shanimal