jQuery调用其他事件处理程序中的事件处理程序函数

jquery call event handler function within other event handler

本文关键字:程序 事件处理 函数 调用 jQuery 其他      更新时间:2023-09-26

我有这样的东西

<div id="id">
    <button name="one">One</button>
    <button name="two">Two</button>
</div>
var testClass = {
    initialise: function (a, b) {
        jQuery('#id button').each( function(){
            if (jQuery(this).name=='one'){
                jQuery(this).click( function ( event ) {
                    //do something else
                    testClass.whenClicked ( data: {a:a, b:b }, target: this ); // how do I pass event into whenClicked here??
                });
            }else{
                jQuery(this).click(data: {a:a, b:b }, testClass.whenClicked );
            }
        }
    },
    whenClicked: function (event){
        event.preventDefault();
        alert(event.data.a);
    };

}
testClass.initialise('a','b');

当我单击"One"时,如何从条件语句中调用现有的事件处理程序函数并传递事件对象,以便 event.preventDefault() 将起作用。

相反,我目前得到的是"对象没有函数 eventDefault",因为 when Clicked 中的事件是这个。

我在这里设置了一个小提琴:http://jsfiddle.net/5TbVK/1/

我认为你把它复杂化了。你想要调用该函数。

  this.whenClicked();

不绑定基于第一次点击的另一个点击事件。

试试这个:

http://jsfiddle.net/5TbVK/4/