0

我有一个将商品添加到购物车的自定义事件触发器:

var order = function (){
   $(document).trigger('customEvent');
    ...........
   ........
};

我有一个结构,其中列出了商品的价格,当在购物车中添加该商品时,我必须从 dom 获取价格。问题是如果我听customEvent,它将针对文档而不是触发事件的位置。

有没有办法针对该元素?

这些都指向文档而不是元素。

event.target || event.srcElement || event.originalTarget || $(event.target) 
4

2 回答 2

0

您是否尝试过$(this)在事件处理程序中使用?AFAIK,它应该指向接收事件的实际元素。

$('#myElement').on('customEvent',function(){
  $(this).text('foo')
})
$('#mySecondElement').on('customEvent',function(){
  $(this).text('bar')
})
$(document).trigger('customEvent')
于 2012-06-02T01:34:11.907 回答
0

与其在文档元素上触发事件,不如在您的项目上触发它?

 $('#itemThatWasAddedId').trigger('customEvent');

..从评论中编辑..

如果您需要做的只是检索与单击的 div 相关的一些信息,而不是使用附加到您的页面的文档 customEvent 处理程序,您可以只使用简单的 $().click() 事件。

$('#itemThatWasAddedId').click(function(){ 
    //retrieve the item price using the inner html, or a selector..
    $(this).html();
})
于 2012-06-02T01:34:53.943 回答