簡體   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