Javascript 使用on()将参数传递给函数

Javascript 使用on()将参数传递给函数,javascript,jquery,Javascript,Jquery,这个snytax错了吗?我得到了jquery-1.10.2.min.js:3未捕获类型错误:((x.event.special[I.origType]| | |(中间值)).handle | | I.handler)。apply不是一个函数您没有用某个参数绑定myFunc,而是调用函数myFunc('param'),并绑定该方法调用的结果 一种方法是将调用包装到另一个函数中: $(document).on('click', '#my', myFunc('param')); functi

这个snytax错了吗?我得到了
jquery-1.10.2.min.js:3未捕获类型错误:((x.event.special[I.origType]| | |(中间值)).handle | | I.handler)。apply不是一个函数

您没有用某个参数绑定myFunc,而是调用函数myFunc('param'),并绑定该方法调用的结果

一种方法是将调用包装到另一个函数中:

    $(document).on('click', '#my', myFunc('param'));

function myFunc(param){
    //do something
}

您没有使用某个参数绑定myFunc,而是调用函数myFunc('param'),并绑定该方法调用的结果

一种方法是将调用包装到另一个函数中:

    $(document).on('click', '#my', myFunc('param'));

function myFunc(param){
    //do something
}

这确实是错误的。”在“回调”上,预期[事件作为第一个参数。在当前形式中,代码没有机会工作,因为myFunc('param')不是函数(它是求值的结果)

您可以通过以下方式简单地包装内部函数:

$(document).on('click', '#my', function() { myFunc('param') });
但如果要在该处理程序中正确使用jquery,则需要绑定以下内容:

$(document).on('click', '#my', function() { myFunc('param'); });

function myFunc(param){
    //do something
}
您还可以使您的函数返回另一个函数:

$(document).on('click', '#my', function() { myFunc.bind(this)('param'); });

    function myFunc(param){
        //do something
    }
这是一把完整的小提琴

函数myFunc1(p){
返回函数(){
$(此)[0].innerHTML=“由”+p修改;
};
}
函数myFunc2(p){
$(此)[0].innerHTML=“由”+p修改;
}
$(文档)。在(“单击”,“一”,myFunc1(“内包装”);
$(document).on(“click”、“#two”,function(){myFunc2.bind(this)(“outer wrapping”);}
div{
宽度:300px;
背景颜色:黄色;
文本对齐:居中;
边缘顶部:10px;
}

两个
这确实是错误的。'on'回调需要[一个事件作为第一个参数。在它的当前形式中,您的代码没有机会工作,因为myFunc('param')不是函数(它是求值的结果)

您可以通过以下方式简单地包装内部函数:

$(document).on('click', '#my', function() { myFunc('param') });
但如果要在该处理程序中正确使用jquery,则需要绑定以下内容:

$(document).on('click', '#my', function() { myFunc('param'); });

function myFunc(param){
    //do something
}
您还可以使您的函数返回另一个函数:

$(document).on('click', '#my', function() { myFunc.bind(this)('param'); });

    function myFunc(param){
        //do something
    }
这是一把完整的小提琴

函数myFunc1(p){
返回函数(){
$(此)[0].innerHTML=“由”+p修改;
};
}
函数myFunc2(p){
$(此)[0].innerHTML=“由”+p修改;
}
$(文档)。在(“单击”,“一”,myFunc1(“内包装”);
$(document).on(“click”、“#two”,function(){myFunc2.bind(this)(“outer wrapping”);}
div{
宽度:300px;
背景颜色:黄色;
文本对齐:居中;
边缘顶部:10px;
}

两个
您可以将数据对象作为
on()
的第三个参数发送,如下所示:

$(document).on('click', '#my', myFunc('param') );

    function myFunc(param){
         return function() {
         };
    }
$(document).on('click', '#my', {p: 'World'}, myFunc);
在函数中,当触发事件时,您可以使用
event.data
访问数据对象,如下所示:

$(document).on('click', '#my', myFunc('param') );

    function myFunc(param){
         return function() {
         };
    }
$(document).on('click', '#my', {p: 'World'}, myFunc);

请参见
向处理程序传递数据部分的本页:

您可以将数据对象作为
on()
的第三个参数发送,如下所示:

$(document).on('click', '#my', myFunc('param') );

    function myFunc(param){
         return function() {
         };
    }
$(document).on('click', '#my', {p: 'World'}, myFunc);
在函数中,当触发事件时,您可以使用
event.data
访问数据对象,如下所示:

$(document).on('click', '#my', myFunc('param') );

    function myFunc(param){
         return function() {
         };
    }
$(document).on('click', '#my', {p: 'World'}, myFunc);

请参阅本页的
向处理程序传递数据部分:

返回
myFunc
的任何原因?确实没有。编辑
$(文档)。on('click','#my',myFunc('param');)
不起作用。它起作用了。请查看控制台中的小提琴外观。错误1)因为那个无关的分号2)您正在立即调用函数,而不是传递对它的引用或在回调中调用它。任何原因都
返回
ing
myFunc
?确实没有。编辑
$(文档)。on('click'、'#my',myFunc('param');
不起作用。它起作用了。请查看控制台中的fiddle外观。错误1)因为该无关分号2)您正在立即调用该函数,而不是传递对它的引用或在回调中调用它。