检查多个事件 - jQuery

时间:2013-12-24 09:30:42

标签: javascript jquery events

假设我想在每个事件myFunction$(document).ready上运行一个函数$(sometag).on('click',....)。如何构造一个函数来检查是否触发了这两个事件中的任何一个,然后运行该方法。我可以将$(document)作为参数传递,然后选中$(document).isReady或检查$(document).click(function(e){if (e.target.is($(some tag))) ...})。这是对的吗?

5 个答案:

答案 0 :(得分:1)

理解您所说的内容并不容易,但听起来您正在尝试附加事件处理程序在文档就绪时触发它,并且如果是这样,你就这样做:

$(document).ready(function() {
    $(sometag).on('click', function() {
        // do stuff
    }).trigger('click');
});

答案 1 :(得分:0)

如果我理解正确的话:

function myFunc(event) {
    if (event.type == 'ready')
        console.log('It is a document.ready');
    else if (event.type == 'click')
        console.log('It is a click');
}
$(document).on('ready', myFunc).on('click', 'a', myFunc);

jsfiddle

答案 2 :(得分:0)

从我的问题中我可以理解......

Jsfiddle:http://jsfiddle.net/patelmilanb1/eR4wG/1/

$('.checkbox').change(function (e) {
    if (e.isTrigger) {
        alert('not a human');
    } else {
        alert("manual check by human");
    }
});

$('.checkbox').trigger('change'); //alert not a human because it is automatically triggered.

答案 3 :(得分:0)

我可能不太了解你的问题,但试试这个:

$(function(){
   $('div1,div2,#id1,#id2,.class1,.class2').click(function(){
      // do something
      yourFunction();
   });
});

答案 4 :(得分:0)

触发元素的多个事件的函数,您可以尝试:

$('#element').on('keyup keypress blur change', function() {
    ...
});

和多个元素上的多个函数,请尝试:

$('#element #element1 #element2').on('keyup keypress blur change', function() {
    ...
});