Jquery on 'keyup' 不绑定



这对我来说似乎还不错,但是只有更改事件才触发。我可以分别束缚事件,但我不必,我错过了什么?

$('.js_EmailSupplier_Search, .js_EmailSupplier_Supplier').unbind('keyup change');
$('.js_EmailSupplier_Search, .js_EmailSupplier_Supplier').on('keyup change', function () {
    const search = $('.js_EmailSupplier_Search').val().toLowerCase();
    const supplierId = $('.js_EmailSupplier_Supplier').val();
    $('.js_EmailSupplier_Row').each(function () {
        $(this).removeAttr("style");
        if (supplierId !== "-1") {
            if ($(this).attr('data-supplier-id') !== supplierId)
                $(this).hide();
        }
        if (search !== "") {
            if ($(this).attr('data-search').toLowerCase().indexOf(search) === -1)
                $(this).hide();
        }
    });
});

edit 我应该补充一点,'js_emailsupplier_search'是一个文本框,'js_emailsupplier_supplier'是一个选择。这可能是问题吗?

您的事件绑定有效...由于您没有提供与问题相关的所有HTML零件,所以我收到JavaScript错误,但这不应该是您的问题。

$('.js_EmailSupplier_Search, .js_EmailSupplier_Supplier').unbind('keyup change');
$('.js_EmailSupplier_Search, .js_EmailSupplier_Supplier').on('keyup change', function() {
  console.log("event fired");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="js_EmailSupplier_Supplier">

最新更新