繁体   English   中英

不使用带有Jquery事件的匿名函数

[英]Not Using an Anonymous Function w/ Jquery Events

在我的程序中,我有一个click事件,对许多按钮执行相同的操作,除了每个事件处理函数的一小部分中的类是不同的。 现在,我只是使用匿名函数。 附加到此事件的功能很长,我预计会有很多按钮(大约60个左右?)。 我可以复制并粘贴我有60次的当前工作函数,但这将使我的javascript文件变得庞大。

我想做的是在on()函数之外定义事件处理函数,所以我可以说$('#some_button').on('click', my_event_handler("my_arg") );
这将真正简化我的代码。

我做了一个js小提琴,它给出了我正在尝试做的一个非常小的例子:

http://jsfiddle.net/AsmmF/

唯一的问题是,我无法让它发挥作用!

我要去看泰德,当我回来时,试试你的解决方案。

非常感谢您为我提供的任何帮助!

您只需要在匿名函数中包装函数调用。

$('#some_button').on('click', function() {my_event_handler("my_arg");} );

$('#some_button').on('click', my_event_handler("my_arg") )

应该:

$('#some_button').on('click', null, "my_arg", my_event_handler);

现场演示

使您的函数返回一个函数。

function button_click(some_var) {
    return function() {
        $('#button').after('<p>This is being attached: ' + some_var + '</p>');
    };
};
$('#button').on('click', button_click("hello") );

(演示http://jsfiddle.net/63Le2/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM