是否可以为jquery事件对象添加自定义属性?

Bob*_*obo 4 javascript jquery javascript-events

示例代码如下:

$('a').mousedown(function(event)
   {
            event.ABC = true;

   });

$(window).mousedown(function(event)
    {
        console.log("event.ABC:",event.ABC);
         //outputs "undefined "

        if( event.ABC)
        {
          // do sth
        } 
        else
        {
            //let it go  
        }


    });
Run Code Online (Sandbox Code Playgroud)

小智 6

其他人提到,将为每个回调重新创建jQuery事件,这就是丢失添加到jQuery事件的任何属性的原因。

但是,jQuery事件具有一个在整个事件传播阶段持续存在的originalEvent属性。

相反event.ABC,您可以这样做event.originalEvent.ABC

注意:如果打算广泛使用此功能,则可能需要添加myAppData属性来存储所有数据,即event.originalEvent.myAppData.ABC。这样可以轻松地确定哪些事件属性是您的自定义属性,并且还减少了名称冲突的可能性。