JQuery event.target 错误

发布于 2024-07-13 16:20:50 字数 447 浏览 11 评论 0原文

我有一个来自 div (price_item) 的盒子,其中有几个子 div(日期、价格等)。 我用它作为显示价格的轮播。 如果单击任何子级,则父级的背景颜色必须更改为红色。 我这样写:

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

在Chrome上,event.target按预期工作,在Firefox 3.0.1上它说“事件未定义”。 我该如何解决这个问题?

我已经尝试过以下操作:

$(this).parent().css()

它说“对象不是函数”

谢谢!

I've a box from divs (price_item) with several child divs (date, price etc.). I'm using it as a caroussel for showing prices. If one clicks on any child, the parent's background color must be changed to red. I wrote it like:

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

on Chrome, event.target is working as expected, on Firefox 3.0.1 it says "event is not defined". How can I work around this?

I've tried the following:

$(this).parent().css()

it says 'object is not a function'

thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一百个冬季 2024-07-20 16:20:50

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

您还可以将单击处理程序添加到父对象并使用“$(this)”而不是 event.target:

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

如果用户单击父对象或其任何子对象,它将调用您的单击处理程序。 如果您只需要在他们实际单击其中一个子项(例如,而不是在它们之间)时更改背景,则这是行不通的。

The event object gets passed into your click handler by jQuery, so you need to specify it as a parameter.

You also may be able to add the click handler to the parent object and use "$(this)" instead of event.target:

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

If the user clicks the parent, or any of its children, it will call your click handler. If you need to only change the background if they actually click on one of the children (not between them, for example) this won't work.

多孤肩上扛 2024-07-20 16:20:50

如果您想对事件执行任何操作,请确保将事件作为参数传递给处理函数:

$('#foo').click(function(event) {
  // ...
});

但与前面的海报所说的一样,您应该能够仅使用 $(this) 来获取您想要的内容。

If you want to do anything with events, make sure you pass the event as an argument to the handling function:

$('#foo').click(function(event) {
  // ...
});

But ditto what the earlier poster said, you should be able to just use $(this) to get what you want.

嗳卜坏 2024-07-20 16:20:50
$(...selectquery...). .click(function(event) { var $tgt = $(event.target); 

$(this).parent().css("...") should work as well
$(...selectquery...). .click(function(event) { var $tgt = $(event.target); 

$(this).parent().css("...") should work as well
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文