在事件调用中从函数内部访问元素属性 - 这个

时间:2011-09-02 19:49:27

标签: javascript jquery scope this

所以我想知道是否有人知道为什么会这样。我声明一个函数,然后给它一个属性值,如下所示。我将函数绑定到元素上的单击事件。 click事件有效 - 它调用函数。

$settings.xClick = function(event){
    console.log($(this)); 
}
$settings.xClick.x = "test";

$("#xyz").bind("click", {}, $settings.xClick);

x似乎不在函数范围内的问题。

关于在函数内部访问x的正确方法的建议?

1 个答案:

答案 0 :(得分:0)

您将x指定为$settings.xClick的媒体资源。与任何其他对象一样,函数可以具有属性。

重要的是区分该函数的局部范围(每次调用时,函数中声明为var foo = ...的东西)和函数的属性。要在函数x中访问xClick,您必须按如下方式访问它:

$settings.xClick = function(event){
    console.log( $settings.xClick.x ); 
};
$settings.xClick.x = "test";
// ...