Javascript 使用$.fn.extend()创建jQuery函数

Javascript 使用$.fn.extend()创建jQuery函数,javascript,jquery,Javascript,Jquery,我几乎没有使用$.fn.extend jQuery函数的经验;下面的代码不起作用,看起来它会起作用,因为我从这个StackOverflow答案()复制粘贴了它 下面的代码很简单,我可以得到第二个函数不工作的地方。。。JSFiddle()然而,在我在一个私有站点上的工作示例中,“toggle\u active\u iot”可以工作,但扩展函数不能 $.fn.extend({ 切换文本:函数(a、b){ 返回this.text(this.text()==b?a:b); } }); 功能切换\活动\

我几乎没有使用$.fn.extend jQuery函数的经验;下面的代码不起作用,看起来它会起作用,因为我从这个StackOverflow答案()复制粘贴了它 下面的代码很简单,我可以得到第二个函数不工作的地方。。。JSFiddle()然而,在我在一个私有站点上的工作示例中,“toggle\u active\u iot”可以工作,但扩展函数不能

$.fn.extend({
切换文本:函数(a、b){
返回this.text(this.text()==b?a:b);
}
});
功能切换\活动\物联网(链接){
$('.iot items')。toggleClass('active');
$('.iot产品').toggleClass('active');
}
.iot项目,
.物联网产品{
显示:无;
}
.主动{
显示:块!重要;
}

物联网
项目
测试项目
测试产品

您的小提琴无法工作,因为您已将JS配置为放置在window.load处理程序中。鉴于on*event attibute的使用已经过时,函数需要在全局范围内,因此更改设置以将JS放在前面:jsfiddle.net/qxcwo51n/28。这也是我添加到您的问题中的代码片段起作用的原因。我建议您去掉onclick属性,并使用适当的不引人注目的事件处理程序,例如jQuery的on()


这个问题在评论中得到了回答,因为没有人写答案, 我把这个答案做成了一个社区wiki答案。这是为了将此问题从列表中删除 未答复的名单。 最初的答案是@Rorymcrossan。鼓励OP选择此作为 回答以删除未回答的问题状态。(如该人 在评论中回答的人决定回答OP可以,也应该,
选择该答案。)

代码似乎工作正常。问题是什么?它不能在小提琴中工作,因为您的代码在一个onload事件中,因此它不是全局的,并且像onclick这样的事件属性中的函数需要是全局的。JSFIDLE默认将js代码放在窗口的onload回调中是的,我不知道它这么简单而且不工作。。。把它扔掉肯定是完全不同的事情——感谢Patrick Evansy您的小提琴不起作用,因为您已经将JS配置为放置在window.load处理程序中。鉴于*事件属性上的
的使用已经过时,但函数需要在全局范围内,因此请更改设置,将JS放置在
之前。这也是我添加到您的问题中的代码片段起作用的原因。我建议您去掉
onclick
属性,并使用适当的不引人注目的事件处理程序,例如jQuery的
on()
谢谢Rory。我会的。确认这确实是你将要谈论的问题。谢谢你,我会的