我有这样简单的脚本:
(function($) {
$(document).ready(function() {
function getData() {
$.ajax({
url: '/path/to/file',
type: 'GET',
dataType: 'json',
success: function(response) {
var text = response.jsontitle;
$('#link').attr('class', '');
$('#link').attr('class', text);
// Second, Third, Fourth .... after get data
// Click fires 2, 3, 4 .... after get data
$('#link').on('click', function() {
console.log($(this).attr('class'));
})
}
});
}
var refreshData = setInterval(getData, 5000);
getData();
});
})(jQuery);
我希望每个时间间隔只发生一次click事件。但是,当前点击事件发生的次数与getData()
一样多。
例如,如果getData()
出现两次,那么点击事件也会发生两次。
答案 0 :(得分:6)
首先解除unbind事件然后绑定,如果你想使用内部成功回调函数
$('#link').off('click').on('click'....
或者更好地在回调函数之外绑定事件