我有一个来自divs(price_item)的盒子,里面有几个子div(日期,价格等)。我用它作为显示价格的caroussel。如果单击任何子项,则父项的背景颜色必须更改为红色。我写得像:
$(...selectquery...).click(function() {
var $tgt = $(event.target);
$tgt.parent().css("backgroundColor", "red");
});
在Chrome上,event.target按预期工作,在Firefox 3.0.1上显示“事件未定义”。我该如何解决这个问题?
我尝试了以下内容:
$(this).parent().css()
它说'object is not a function'
谢谢!
答案 0 :(得分:8)
jQuery会将event
对象传递给您的点击处理程序,因此您需要将其指定为参数。
您也可以将点击处理程序添加到父对象并使用“$(this)”而不是event.target:
$(...select the parent...).click(function() {
$(this).css("backgroundColor", "red");
});
如果用户单击父项或其任何子项,它将调用您的单击处理程序。如果你只需要改变背景,如果他们实际点击其中一个孩子(例如,不在他们之间),这将不起作用。
答案 1 :(得分:1)
如果您想对事件做任何事情,请确保将事件作为参数传递给处理函数:
$('#foo').click(function(event) {
// ...
});
但是同样早先的海报所说的,你应该只能用$(this)来得到你想要的东西。
答案 2 :(得分:0)
$(...selectquery...). .click(function(event) { var $tgt = $(event.target);
$(this).parent().css("...") should work as well