3
我正在寫一個嚴格限制事件的JavaScript腳本。我必須對「焦點」事件執行一些說明,並對「選擇」事件進行一些不同的說明。 令我驚訝的是,我發現以編程方式給予焦點,也會引發'選擇'事件!這是一個很大的問題。 你能告訴我爲什麼會發生這種情況,如果我可以通過編程方式阻止選擇事件,那麼只有當我以編程方式給焦點時?專注於輸入觸發'焦點'和'選擇'事件
請看下面的例子。當點擊'給焦點'按鈕時,控制檯將會寫'你選擇了一些東西'!
謝謝
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
<input id="field" type="text" />
<a href="#" id="btn">Give focus</a>
<script>
$(document).ready(function() {
$('#field').on('select', function(e) {
console.log('You selected something');
});
$('#btn').on('click', function(e) {
$('#field').focus();
})
});
</script>
</body>
</html>
我認爲,這兩個事件是工作一樣,'select'或'點擊'。一旦fire'focus()',它會自動激發'select'事件。我認爲不需要2個事件。我認爲只有「點擊」就足夠了。 – Samir
這不是重點。我需要兩個不同的事件監聽者。我必須在「點擊」事件上做一些與「選擇」事件不同的事情。所以我需要他們兩個。問題在於避免搞砸兩個事件。 – user2029958
讓我們考慮你需要2個不同的事件用於不同的目的。但要選擇輸入字段,您需要點擊它。因此它會一次激發2個事件'select'和'click'。這是我的理解。 – Samir