[英]JQuery: Remove JS after defining event listener but before listener is triggered
[英]How to remove jQuery event listener on checkbox after it was toggled?
我有以下jQuery代码
$('#filterPageSearchModel_CarMakeFilter').on('change', function () {
var make = $(this).val();
CreateList(make, '@actionModel', '@idModel');
CreateList(make, '@actionEngineSize', '@idEngineSize');
CreateList(make, '@actionSubModel', '@idSubModel');
CreateList(make, '@actionYear', '@idYear');
CreateList(make, '@actionMarkOrSeries', '@idMarkOrSeries');
});
var CreateList = function (make, action, id, model, engineSize, submodel) {
$('.loader').css('display', 'inline');
// $(DropDownObject).prop("disabled", true);
var Make = make;
var Model = model;
var Id = id;
var EngineSize = engineSize;
var SubModel = submodel;
$.ajax({
url: action,
type: 'GET',
datatype: 'JSON',
data: { Make: Make, Model: Model, EngineSize: EngineSize, SubModel: SubModel },
success: function (result) {
$(Id).html('');
$(Id).append($('<option>Select an Option</option>'));
$.each(result, function (i, item) {
$(Id).append($('<option></option>').val(item.Value).html(item.Text));
});
$(Id).trigger("chosen:updated");
$(Id).val(""); // set value to null
$('.loader').css('display', 'none');
//$(DropDownObject).prop("disabled", false);
}
});
};
我想在勾选复选框时禁用功能CreateList或以某种方式隐藏/禁用“ #filterPageSearchModel_CarMakeFilter”的事件“ onchange”,并且显然当未勾选复选框时,再次启用这些事件。
请尝试以下方法:
$('#filterPageSearchModel_CarMakeFilter').on('change', function (){
if(!this.checked) {
var make = $(this).val();
CreateList(make, '@actionModel', '@idModel');
CreateList(make, '@actionEngineSize', '@idEngineSize');
CreateList(make, '@actionSubModel', '@idSubModel');
CreateList(make, '@actionYear', '@idYear');
CreateList(make, '@actionMarkOrSeries', '@idMarkOrSeries');
}
});
有一个复选框还是多个复选框? 是'filterPageSearchModel_CarMakeFilter'复选框或另一个复选框对此产生了影响?
只需像这样获取复选框值... $('#check_id').val();
所以这个
$('#filterPageSearchModel_CarMakeFilter').on('change', function () {
if ($('#check_id').val()) { // if checkbox is checked, run the bottom code
var make = $(this).val();
...
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.