如果存在.trigger(),是否会跳过.remove()

时间:2018-12-12 07:29:20

标签: javascript jquery

我不确定我现在拥有的代码的复杂性:

$(document).on('click', '#filter-items span i', function(e) {
    var filter_value    = $(this).parent().attr('data-value');
    var filter_field    = $(this).parent().attr('data-field');

    $( this ).parent().remove();

    $('#the-filters input[name="' + filter_field +'"][value="' +filter_value +'"]').trigger('click');

});

选择的过滤器项结构为:

<div id="filter-items">
    <span data-value="14" class="filter-item" data-field="category">Filter 1<i class="fas fa-times"></i></span>
</div>

我似乎无法弄清的问题是:

$('#the-filters input[name="' + filter_field +'"][value="' +filter_value +'"]').trigger('click');

出现在代码上,它会停止

$( this ).parent().remove();

被执行。有什么原因会发生这种情况吗?我试图将删除行放在if语句中,然后将触发代码放入其中,但是发生了相同的事情。

1 个答案:

答案 0 :(得分:0)

触发.click会重新创建跨度,因此这就是删除似乎无效的原因。