jQuery:如果我在一个item类上调用.change(),它会被调用多少次?



我现在有一个思维障碍,我正在问一个愚蠢的问题。假设我有这个:

<input type="text" class="x"/>
<input type="text" class="x"/>
<input type="text" class="x"/>
jQuery

$(document).ready(function () {
     $(".x").change(function (e) {
        //functionality
     });
    $(".x").trigger("change");
});

变更事件功能将被触发多少次?它会被触发3次吗?每个输入一个?还是只有一次?

它将为.x选择器中的每个项目调用一次。


在jQuery中,像这样:

$(".x").trigger("change");

在内部通过获取与.x选择器匹配的整个元素集合,然后为每个单独的元素调用.trigger()来实现。虽然没有办法这样编码,但您可以这样逻辑地考虑它:

$(".x").each(function() {
    $(this).trigger("change");
});

实际上,如果您查看trigger方法的jQuery源代码,您会看到:

trigger: function( type, data ) {
    return this.each(function() {
        jQuery.event.trigger( type, data, this );
    });
},

因此,您可以看到它只是在jQuery集合上循环,为集合中的每个对象触发事件。

相关内容

  • 没有找到相关文章