簡體   English   中英

jQuery的。更改事件后,click事件不起作用?

[英]Jquery. click event doesn't work after change event?

有這個示例代碼:

<input type="text" id="changeid">
<a href="#" id="clickb">click</a>

<script>
    $('#clickb').on("click", function(event){
        alert(1);                             
        return false;
    });

    $('#changeid').on("change", function(event){
        alert(2);                             
        return false;
    });
</script>

將某些內容放入文本字​​段並立即單擊鏈接時,僅觸發onchange事件,但不會觸發鏈接單擊事件。 這是為什么? 似乎更改事件阻止了click事件?

它被alert阻止。 alert更改為console.log您會發現兩個事件都被觸發。

演示。

$('#clickb').on("click", function(event){
    console.log(1);
    return false;
});

$('#changeid').on("change", function(event){
   console.log(2);                             
   return false;
});​

編輯輸入然后單擊鏈接時,內部會發生以下情況

  1. 您開始點擊“鏈接”。 還沒有生成任何事件(甚至沒有生成),因為首先瀏覽器會做一些清理工作:
  2. 輸入失去焦點並將引發blur事件
  3. 輸入引發change事件,因為它引發blur並且值已更改
  4. 您的change事件回調會打開alert(2)
  5. 自出現新窗口以來,文件失去了焦點
  6. 該鏈接永遠不會遇到click

解決方案不是使用alert (如xdazz提議的那樣)。

用這個

$("#changeid").live('change', function () ...

onchange事件僅在元素模糊后觸發。 因此,當您鍵入一些文本並首先單擊鏈接時,元素在文本字段上模糊。 使用onkeyup事件處理更改事件的最佳方法是跟蹤對文本字段所做的更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM