在将参数传递给函数时使用jquery

时间:2012-01-27 08:42:17

标签: javascript jquery

我有一个触发js功能的链接。对于链接,我在html上附加了数据属性,我想传递给函数。

$(".trigger").awesomeFunction({
  oneArgument: "secretSauce",
  secondArgument: $(this).data("address")
});

现在第二个参数结束为null而不是data-address属性。是因为$(this)不在函数参数列表中的正确范围内,如果是这样,我怎么能引用原始链接?

4 个答案:

答案 0 :(得分:0)

$(".trigger").click(function() { 
    var self = $(this);
    self.awesomeFunction({ 
        oneArgument: "secretSauce",
        secondArgument: self.data("address")
    });
});

答案 1 :(得分:0)

不确定awesomeFunction是如何定义的,但这似乎可以解决问题。

$.fn.awesomeFunction = function(obj){
    console.log(obj.sauceType, this.data(obj.dataArg))
    // returns 'secretSauce 123 Anystreet Dr.'
}
var div = $('#theDiv')
div.awesomeFunction({
    sauceType : 'secretSauce',
    dataArg : 'address'
})

JSFiddle

答案 2 :(得分:0)

$(".trigger").each(function() { 
    var self = $(this);
    self.awesomeFunction({ 
        oneArgument: "secretSauce",
        secondArgument: self.data("address")
    });
});

答案 3 :(得分:0)

鉴于您的代码示例,任何事情都可能发生,this未在.trigger范围内定义,您可以说是“一层”。

See this fiddle for example