Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 对象上的Jquery函数';通过这个,我们的财产是什么_Javascript_Jquery_Object_This - Fatal编程技术网

Javascript 对象上的Jquery函数';通过这个,我们的财产是什么

Javascript 对象上的Jquery函数';通过这个,我们的财产是什么,javascript,jquery,object,this,Javascript,Jquery,Object,This,我有一个目标: var obj = { id: $('#f_view') }; 我有一个功能: function switchFrom(trigger) { trigger.id.click(function() { this.id.toggleClass('class'); }); }; switchFrom(obj); 当我运行函数时: function switchFrom(trigger) {

我有一个目标:

var obj = { id: $('#f_view') };
我有一个功能:

function switchFrom(trigger) {
          trigger.id.click(function() {
                 this.id.toggleClass('class');
          });
};
switchFrom(obj);
当我运行函数时:

function switchFrom(trigger) {
          trigger.id.click(function() {
                 this.id.toggleClass('class');
          });
};
switchFrom(obj);
我得到:

undefined is not a function (evaluating'this.id.toggleClass('class')')
当我显式地引用元素时,函数工作

$('#f_view').toggleClass('class');

我做错了什么?谢谢您的时间。

您需要将
$(…)
包装成类似的jQuery对象

function switchFrom(trigger) {
         trigger.id.click(function() {
                 $(this).toggleClass('class');
          });
}

这是因为本机javascript对象没有访问jQuery方法的权限

您需要通过像这样包装
$(…)
来转换为jQuery对象

function switchFrom(trigger) {
         trigger.id.click(function() {
                 $(this).toggleClass('class');
          });
}

这是因为本机javascript对象无权访问jQuery方法

id
在您的情况下是一个非常糟糕的变量名。应该类似于
$ele
trigger.id.toggleClass('class')是您想要做的。下面的答案可能更好though@StephenBugsKamenar,这样行得通,谢谢。我只是想知道
这个
引用是否可以做同样的事情。
id
在您的例子中是一个非常糟糕的变量名。应该类似于
$ele
trigger.id.toggleClass('class')是您想要做的。下面的答案可能更好though@StephenBugsKamenar,这样行得通,谢谢。我只是想知道
这个
引用是否可以做同样的事情$(this.toggleClass('class')我仍然收到相同的错误。很抱歉,我忘记删除对对象属性的
.id
引用。你的解决方案是有效的。顺便说一下,如果你想
这个
内部函数引用对象,你需要
调用()
方法(或者使用
apply()
):当我设置对象时,比如:
var obj={id:$('f#u视图')$(this.toggleClass('class')我仍然收到相同的错误。很抱歉,我忘记删除对对象属性的
.id
引用。您的解决方案是有效的。另外,如果您希望
内部函数引用对象,则需要
调用()
方法(或使用
应用()
):