在下面的example中,有一個簡單的輸入欄和一個按鈕。jquery有時會改變事件防止點擊事件
<body>
<input type="text" id="in">
<input type="button" value="click" id="button">
</body>
在輸入欄上有一個改變事件功能,按鈕上有一個點擊事件功能。
$(document).ready(function() {
$('#in').change(function() {
console.log('change event');
//window.alert('change event');
});
$('#button').click(function() {
console.log('click event');
});
});
在改變輸入字段的值,並立即單擊按鈕(不留光標),我的期望是,這兩個事件被觸發。不幸的是,這種行爲取決於在改變函數內執行的代碼,例如在取消註釋window.alert行時,不會觸發click事件 - 或者不執行click事件功能。爲什麼?我該如何避免代碼阻止點擊事件功能的執行?
更新: 替代window.alert,該jquery.hide有same effect
$(document).ready(function() {
$('#in').change(function() {
console.log('change event');
$('#hide').hide();
});
$('#button').click(function() {
console.log('click event');
});
});
alert()是模態的,這是解釋它 –
因爲你沒有實際點擊按鈕。而是留下輸入,然後瀏覽器立即凍結,等待您單擊警報上的確定按鈕。雖然它是*凍結*或*封鎖*,您無法與網頁互動。要修復它,請不要使用警報。 –
還在遊蕩,你在找什麼? – anand4tech