Jquery控件事件处理程序执行

时间:2014-03-13 17:14:00

标签: javascript jquery

我在separeted文件中有两个处理程序。我想在第二个处理程序中测试第一个处理程序是否已执行。例如:

如果是文件一:

$("#input1").on("focusout", function(){
    alert("Hi");        
});

如果是文件二

$("#btn1").on("click", function(){
    if(input1 focusout handler is not running) {
        alert("clicking");
    }
});

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

我可以提供两种方式:

  1. 全局变量

    // Somewhere in JS code
    focus_handler = false;
    
    $("#input1").on("focusout", function(){
        focus_handler = true
        alert("Hi");
        // some code
        focus_handler = false
    }
    
    
    $("#btn1").on("click", function(){
        if(!focus_handler) { // or focus_handler === false
            alert("clicking");
        }
    });
    
  2. JQuery数据

    $("#input1").on("focusout", function(){
        $("#btn1").data('focus_handler', true);
        alert("Hi");
        // Some handler
        $("#btn1").data('focus_handler', false);
    }
    
    $("#btn1").on("click", function(){
        if(typeof($(this).data('focus_handler')) != 'undefined') {
            alert("clicking");
        }
    });