jquery在其他事件处理程序中调用事件处理函数

时间:2013-10-23 03:23:35

标签: javascript event-handling onclick jquery

我有类似的东西

<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”,因为whenClicked中的事件就是这个。

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

1 个答案:

答案 0 :(得分:1)

我认为你过于复杂了。 你想调用这个函数。

  this.whenClicked();

不会根据第一次点击绑定其他点击事件。

试试这个:

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