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
引用。您的解决方案是有效的。另外,如果您希望此
内部函数引用对象,则需要调用()
方法(或使用应用()
):