Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在事件调用时从函数内部访问元素属性-此_Javascript_Jquery_Scope_This - Fatal编程技术网

Javascript 在事件调用时从函数内部访问元素属性-此

Javascript 在事件调用时从函数内部访问元素属性-此,javascript,jquery,scope,this,Javascript,Jquery,Scope,This,所以我想知道是否有人知道为什么会这样。我声明了一个函数,然后给它一个属性值,如下所示。我将函数绑定到元素上的单击事件。click事件起作用-它调用函数 $settings.xClick = function(event){ console.log($(this)); } $settings.xClick.x = "test"; $("#xyz").bind("click", {}, $settings.xClick); 问题是x似乎不在函数范围内 关于在函数内部访问x的正确方法的建

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

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

$("#xyz").bind("click", {}, $settings.xClick);
问题是x似乎不在函数范围内


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

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

不过,区分该函数的局部范围(在每次调用时,函数中声明的东西如
var foo=…
)和函数的属性是很重要的。要访问函数
xClick
中的
x
,您必须像这样访问它:

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

这真的是了解上下文的唯一方法吗$设置.xClick.x?我试图给这个函数一些易于访问的数据和函数,供最终用户访问。它们提供事件,插件为它们设置一些默认设置和访问方法。