关于改变的jQuery没有解雇

时间:2014-02-09 00:07:26

标签: javascript jquery html

我正在尝试将单词库中的单词添加到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

1 个答案:

答案 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/