[英]Binding click events for all children
我正在嘗試為元素的子代綁定點擊事件,如下所示:
$('#A').children().bind('click',function () {
console.log('Hello');
});
HTML是
<select id='A'>
<option val='1'>One</option>
<option val='2'>Two</option>
</select>
我已經檢查了stackoverflow中的其他問題,例如jQuery中的Bind元素及其子元素,到處都提到了相同的方法。 這里有什么問題嗎?
編輯
我了解有可用的更改事件,但是請考慮當我選擇相同的選項時需要觸發更改事件的情況。
更改僅在選項從One
更改為Two
,反之亦然,但是如果我選擇相同的選項,即:從Two
更改為Two
本身該怎么辦?
您可能需要change()
事件而不是click
並且不需要與option
綁定。 只要通過單擊選項更改選項選擇,事件就會觸發。
$('#A').bind('change',function () {
console.log('Hello');
});
您可以在此處將.change()事件用於select
元素,因為更改option
時將觸發.change()
事件:
$('#A').on('change',function () {
console.log('Hello');
}).change();
這是您想要的行為嗎? http://jsfiddle.net/P97ML/
$('#A').bind('change',function () {
console.log('Hello');
});
將on()與select
change事件一起使用。
這樣做:
$('#A').on('change',function () {
console.log($(this).val()); // log selected option value
});
您做得正確( 在大多數情況下都可以使用 ),但是在select
使用options
卻不是這樣
您需要使用change事件,如果您想獲得對所選選項的引用,則可以使用:selected
$('#A').bind('change',function () {
console.log('Hello');
var $selectedOption = $("option:selected",this);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.