jQuery事件目标错误

3

我有一个包含多个子div(日期、价格等)的div盒子(price_item)。我将其用作轮播展示价格。如果单击任何子div,父div的背景颜色必须更改为红色。我写的代码如下:

$(...selectquery...).click(function() {
    var $tgt = $(event.target);
    $tgt.parent().css("backgroundColor", "red");
});

在Chrome上,event.target的效果如预期一样;在Firefox 3.0.1中,它会显示“event未定义”。我该如何解决这个问题?
我已经尝试过以下方法:
$(this).parent().css()

它说'object is not a function'

谢谢!

3个回答

8
< p > event 对象通过 jQuery 传递给您的点击处理程序,因此您需要将其指定为参数。

你也可以将点击处理程序添加到父对象中,并使用 "$(this)" 而不是 event.target:

$(...select the parent...).click(function() {
    $(this).css("backgroundColor", "red");
});

如果用户单击父元素或其任何子元素,将调用您的点击处理程序。如果您只需要在他们实际单击其中一个子元素时更改背景(例如,而不是在它们之间单击),则此方法无法工作。


1
如果你想对事件进行任何操作,请确保将事件作为参数传递给处理函数:
$('#foo').click(function(event) {
  // ...
});

但是和之前的帖子所说的一样,你应该能够只使用$(this)来获取你想要的内容。


0
$(...selectquery...). .click(function(event) { var $tgt = $(event.target); 

$(this).parent().css("...") should work as well

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接