我有一個textbox
,一個複選框和一個span
標記。當我點擊複選框時,它應該在span
標記中顯示其狀態。當更新textbox
時,它將重新插入複選框塊。當你現在單擊複選框時,它無法更新狀態。jQuery點擊不會啓動
我正在使用on
事件處理程序的複選框單擊事件,所以我期望它的工作。
任何想法爲什麼這不按預期工作?
$('div[role] input[type=checkbox]').on('click', chg);
$('div[role] input[type=text]').on('input', sourceChanged);
function chg() {
var istiki = $(this).is(":checked");
$('#upd').html(istiki);
}
function sourceChanged() {
$('span', $(this).closest('.input-group')).html('<input type="checkbox">');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div role="Tiki" class="input-group">
<input type="text" class="form-control" />
<span class="input-group-addon"><input type="checkbox" /></span>
</div>
<span id="upd"></span>
您在舊追加一個新的複選框,這使得它成爲您設置處理程序時不在DOM中的新元素。這到http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements – Spokey 2014-10-10 08:57:42
可能重複的[jquery動態添加元素的事件委託問題](http://stackoverflow.com/問題/ 21019617/event-delegate-issue-for-dynamic-added-element-in-jquery) – 2014-10-10 08:58:41
出於好奇,'.input-group'已經有一個複選框,那麼你爲什麼要這樣做 - '$(' span',$(this).closest('。input-group'))。html('');'? – 2014-10-10 09:03:34