亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么點擊btn1彈出了三次,第二次和第三次都什么原因

?<div class="left">

? ? ? ? <h4>測試一</h4>

? ? ? ? <div class="aaron">

? ? ? ? ? ? 選中文字:input

? ? ? ? ? ? <input type="text" value="慕課網" />

? ? ? ? </div>

? ? ? ? <button id="bt1">觸發input元素的select事件</button>

? ? ? ??

? ? ? ? <h4>測試二</h4>

? ? ? ? <div class="aaron">

? ? ? ? ? ? textarea:

? ? ? ? ? ? <textarea rows="3" cols="20">用鼠標選中文字</textarea>

? ? ? ? </div>

? ? </div>

?

? ? <script type="text/javascript">


? ? //監聽input元素中value的選中

? ? //觸發元素的select事件

? ? $("input").select(function(e){

? ? ? ? alert(e.target.textContent)

? ? })

? ? $("#bt1").click(function(){

? ? ? ? $("input").select();

? ? })


正在回答

4 回答

1,$("input").triggerHandler('select'); 用這個你會發現只有一次。

2,上面就說明后2次是瀏覽器的默認行為。jquery內部可能調用了這個方法

$("input")[0].select() ,原生js的select方法,你可以去測試一下,這個方法會調用

2次綁定的函數,這就是3次的原因。

備注:只有鼠標去選擇才會只執行一次。用原生js代碼的select去選中是二次,用jquery的select就是三次了。

2 回復 有任何疑惑可以回復我~
#1

UltraNeo

執行$("input").select(); 這一行確實會調用兩次,而且改成 $("input").select(function(e){ alert(e.target.value); return false; }) 就只有一次了,不知道這里的return false;為什么可以減少一次調用?
2016-12-04 回復 有任何疑惑可以回復我~

第一次是button的,第二次是

?$("input").select(function(e){

? ? ? ? alert(e.target.value)

? ? })這個的回調,

第三次是瀏覽器默認提交的

處理方法,阻止回調(return false;)

兄臺這樣可以么,如果你有什么見解可以留言給我。

2 回復 有任何疑惑可以回復我~
#1

暮女神

謝謝謝謝額
2017-06-02 回復 有任何疑惑可以回復我~

你的select事件的觸發元素是節點<input>的,與彈出對話框的按鈕無關

0 回復 有任何疑惑可以回復我~

你是單擊了彈出框的確定按鈕吧。

0 回復 有任何疑惑可以回復我~
#1

iceminit 提問者

是的呢
2016-08-31 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么點擊btn1彈出了三次,第二次和第三次都什么原因

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號