这对我来说似乎还不错,但是只有更改事件才触发。我可以分别束缚事件,但我不必,我错过了什么?
$('.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">