3

いくつかの子 div (日付、価格など) を持つ div (price_item) からのボックスがあります。価格を表示するためのカルーセルとして使用しています。子をクリックすると、親の背景色を赤に変更する必要があります。私はそれを次のように書きました:

$(...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'

ありがとう!

4

3 に答える 3

8

オブジェクトはeventjQuery によってクリック ハンドラーに渡されるため、パラメーターとして指定する必要があります。

クリック ハンドラーを親オブジェクトに追加して、event.target の代わりに "$(this)" を使用することもできます。

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

ユーザーが親またはその子のいずれかをクリックすると、クリック ハンドラーが呼び出されます。実際に子の 1 つをクリックした場合にのみ背景を変更する必要がある場合 (たとえば、子の間ではない)、これは機能しません。

于 2009-02-11T17:53:21.733 に答える
0
$(...selectquery...). .click(function(event) { var $tgt = $(event.target); 

$(this).parent().css("...") should work as well
于 2009-02-11T17:44:35.093 に答える