我试图让 jQuery 甚至每次单击该事件只触发一次,但是如果用户单击另一个元素然后返回到同一个元素,它将再次触发。
例如:
$( '.summary' ).on( "touchstart mousedown", function(event) {
var data_summary = $(this).attr('data-summary');
$('#info').empty().stop(true, true).fadeOut().html('<p>'+data_summary+'</p>').fadeIn();
});
我知道 one(),但这将永久禁用它。这段代码的作用是在气泡中淡出,但如果用户多次单击它,我不希望它继续这样做。但是,如果用户单击另一个元素,它将淡入一个新元素,从而使前一个元素在单击后再次有效。
更新:
淡入和淡出也关闭了,这是下面答案中的最终工作代码,如果其他人需要,可以进行调整。
var prev = null;
$( '.summary' ).on( "touchstart mousedown", function(event) {
if(this !== prev) {
prev = this;
var data_summary = $(this).attr('data-summary');
$('#info').stop(true, true).fadeOut('fast', function() {
$(this).html('<p>'+data_summary+'</p>').fadeIn();
});
}
});