发送param到函数而不执行,直到被点击的javascript / Jquery

时间:2015-01-14 15:00:40

标签: javascript jquery

函数current_child将在没有html的情况下执行li.first因为参数而被点击。如何在点击时向current_child发送event.target之类的参数。目前,它在加载页面时执行。跳过像$(document).on("click", "li.first", current_child)这样的参数,函数将等待执行,直到点击html对象。

var toggle = false;
function current_child(value){
    if(value == 1){
        alert("Hello");
    }
    event.preventDefault();
}


$(document).on("click", "li.first", current_child(1));

3 个答案:

答案 0 :(得分:1)

使用bind而不是直接调用您的处理程序:

$(document).on("click", "li.first", current_child.bind(null, 1));

答案 1 :(得分:1)

您可以使用Javascript变量的词法作用域并返回内部函数

function current_child(value){
    return function (event) {
        if(value == 1){
            alert("Hello");
        }
        event.preventDefault();
    };
}

$(document).on("click", "li.first", current_child(1));

名为closure

答案 2 :(得分:1)

您也可以将其包装在匿名函数中:

$(document).on("click", "li.first", function() { current_child(1); });