2012-04-12 11 views
1

htmlエレメント "item_add"の親である "simpleCart_shelfItem"にjqueryエフェクト 'flash'を適用したいとします。これは、ユーザーがカートに商品を追加したことを示します。多くの "simpleCart_shelfItem"インスタンスが存在するので、私は親を参照することによってそれをやっているので、クリックされたインスタンスでのみエフェクトを発生させたい。私はthisを読んでいました。私が集めたものから、イベントはインラインになっています。thisはグローバルで機能の要素を参照していないためです。これは私が持っているものです。jQueryエフェクトをHTMLエレメントの親onclickにのみ追加する

Javascriptを

上記の例 this
$(".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--> 
+0

をチェック! –

答えて

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

がクリックされた要素を指します。 thisがあなたが正確に意味するものはグローバルではありませんが、あなたは間違っています:-)(または私はあなたに誤解されました)。 http://www.quirksmode.org/js/this.htmlから

:JavaScriptで

これは常に機能が方法であるオブジェクトに、我々は実行、あるいはむしろしている機能の「所有者」を指します。結合jQueryのイベントを使用しないで、なぜあなたは既にjQueryのを使用している場合

the demo

+1

「this」はグローバルなものではなく、実際にはクリックが発生したときに個々の要素を参照していると言えます。 –

+0

迅速な対応に感謝します。私はこのhttp://www.quirksmode.org/js/this.htmlを読んでいたが、私は誤解したと思う。なぜそれは今働いていないのですか? –

+0

これは '$( '。item_add')です。click(...);' - 'onclick()'はjQuery関数ではありません。 –

関連する問題