jquery使用$(this)作为参数

时间:2013-04-30 21:50:14

标签: jquery jquery-plugins

我已经为标题道歉,但我不知道如何提出这个问题,除非以此为例。

我们说这是我的HTML

<img class="balloon" color="yellow" src="img_1.png">
<img class="balloon" color="red" src="img_2.png">
<img class="balloon" color="red" src="img_3.png">

现在假设我有一个jQuery插件party(),我想将颜色传递给每个img的插件。

这是唯一的方法吗?

$('.balloon').each(function() {
    $(this).party({
        party_color:$(this).attr('color'),
        other_param1:'xyz',
        foo:'bar'
    });
});

或者这样的事情能以什么方式发挥作用?

$('.balloon').party({
    party_color:$(this).attr('color'),
    other_param1:'xyz',
    foo:'bar'
});

如果我尝试这个,我会回到document - 元素。这是一种耻辱,因为第二种方法对我来说似乎更有效率。有没有办法可以直接在参数值中引用特定的img$(this)显然不起作用。

1 个答案:

答案 0 :(得分:1)

只需获取插件中的颜色,无论如何在插件中访问元素时都不需要使用元素属性作为插件的选项?

$('.balloon').party();

$.fn.party = function() {
    return this.each(function() {
        var this_party_color = $(this).attr('color');


        // the rest of the plugin

    });
}