我查看了http://api.jquery.com/trigger/,这些示例未回答我的问题.我正在看一些代码,想知道这段代码在做什么.
$(document).on('click', '#SubmitQuery', function(event) {
event.preventDefault();
$(document).trigger('filter:submit');
});
具体来说,该触发函数内部的冒号是做什么的?对于完整的上下文,以下是过滤器(我假设触发函数内部的“过滤器”是指该过滤器对象):
var filter = {
init: function() {
$(document).on('keypress', '#Filter', debounce(function(event) {
if (event.keyCode == 13) {
$(document).trigger('filter:text');
}
}, 300));
$(document).on('click', '#ClearFilter', function(event) {
event.preventDefault();
$('#FilterText').val('');
$('#FilterText').focus();
$(document).trigger('filter:clear');
});
$(document).on('change', '.filterSection [type=checkbox]', function(event) {
var group = $(this).parents('[data-filter-group]').attr('data-filter-group');
var $checkboxes = $('[data-filter-group=' + group + '] [type=checkbox]');
if ($checkboxes.length > 0) {
if ($checkboxes.filter(':checked').length === 0) {
$(this).prop('checked', true);
}
}
});
$(document).on('click', '#SubmitQuery', function(event) {
event.preventDefault();
$(document).trigger('filter:submit');
});
$("#Filter").focus();
}
};
解决方法:
冒号指定自定义事件,从本质上为以后可以调用的事件创建名称空间,而不必覆盖默认事件,也不必在同一事件上创建多个侦听器.
您可以在这里找到更多信息:https://learn.jquery.com/events/introduction-to-custom-events/