1

jqueryエフェクト「flash」をhtml要素「item_add」の親である「simpleCart_shelfItem」に適用したいと思います。これは、ユーザーがカートにアイテムを追加したことを示すためです。「simpleCart_shelfItem」インスタンスが多数あり、クリックされたインスタンスでのみ効果が発生するようにしたいので、親を参照してこれを行っています。this私は収集したものを読んでいますが、グローバルであり、関数内の要素を参照しないonClickため、イベントをインラインにすることはできません。thisこれは私が持っているものです:

Javascript

$(".item_add").onclick = highlight;

function highlight(){

  $(".item_add").parent().effect("highlight", {}, 750);
};

HTML

<div class="simpleCart_shelfItem">
                <div class="image"><img src="css/graphics/jpeg/saw.jpg" alt="Hacksaw" height="75" width="75" /></div>
                <h2 class="item_name">Hacksaw</h2>
                <span class="item"><img src="css/graphics/jpeg/cart.jpg" alt="Shopping Cart" height="20" width="19" />
            Items in Cart: <b class="simpleCart_quantity"></b></span> 
                <div class="description"><p>Quality metal hacksaw and 24 tooth blade.</p><p class="p_height">Your going to need some way of cutting that pipe. Good for the toolbox.</p></div>
                <a class="add_products" href="cart.html">Go to Cart</a>
                <a class="add_products" href="products.html" title="Add Items">Add More Items</a>
                <span class="gst">(Inc. GST)</span>
                <span class="item_price">$24.95</span>
                <input class="item_quantity" value="1" type="text">
                **<a href="javascript:;" class="item_add" onclick="highlight();">Add</a>**
            </div><!--end of simpleCart_shelfItem-->
4

1 に答える 1

1
$(".item_add").click(function() {
    $(this).parent().effect("highlight", {}, 750);
});

上記の例thisでは、クリックされた要素を参照しています。あなたが正確に何を意味するのかthisはグローバルではありませんが、あなたは間違っています:-)(または私はあなたを誤解しました)。

http://www.quirksmode.org/js/this.htmlから:

JavaScriptでは、これは常に、実行している関数の「所有者」、つまり関数がメソッドであるオブジェクトを指します。

デモをチェックしてください

于 2012-04-12T11:00:02.750 に答える