我正在尝试将单词库中的单词添加到div中。这是正常的。然后,当用户点击已添加到div的单词时,它将删除该单词,并将其添加回单词库。现在,on
函数甚至没有触发,因为log("changed");
没有显示在控制台中。
HTML:
<div id="Response"></div>
jQuery的:
/*Append clicked word bank word to TextBox */
$(document).on('click', '.bank-word', function(event) {
var myword = $(this).attr('word') + " ";
$("#Response").append("<span class='myword' word='" + myword + "' ><b>" + myword + "</span>");
$(this).hide();
});
$(document).on('click', '.myword', function(event) {
$(this).hide();
});
/*If User removes word from TextBox, add it back to word bank*/
$(document).on('change', '#Response', function(){
log("changed");
var words = $(this).val().split(' ');
$('.bank-word').each(function(){
if( words.indexOf( $(this).attr('word') ) !== -1 ){
$(this).hide();
}
else {
$(this).show();
}
});
});
log("changed");
甚至没有开火。
编辑:
我如何判断某个部分(比如附加的span
)是否已添加/删除到div
?
答案 0 :(得分:1)
更改事件仅限于<input>
元素,<textarea>
框和<select>
元素。更改dom内容时,它不会在document
上触发。但是,您可以手动触发change
事件:
$(document).on('click', '.bank-word', function(event) {
var myword = $(this).attr('word') + " ";
$("#Response").append("<span class='myword' word='" + myword + "' ><b>" + myword + "</span>");
$(this).hide();
$(document).trigger('change');
});
请参阅以下示例:http://jsfiddle.net/gTbX9/