1

我想将 jquery 效果“flash”应用于“simpleCart_shelfItem”,即 html 元素“item_add”的父级。这是为了表明用户已将商品添加到购物车。我通过引用父级来做到这一点,因为有很多“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 中,this 总是指我们正在执行的函数的“所有者”,或者更确切地说,指的是函数作为方法的对象。

查看演示

于 2012-04-12T11:00:02.750 回答