jquery toggle方法!!!很奇怪的一个问题

$("#enter").toggle(function(){
alert(1);
},
function(){
alert(2);
}
);

竟然没有反应??? api不是这么写的吗?

$(document).ready(function(){
$("#enter").toggle(
function(){
alert(1);
},
function(){
alert(2);
}
);
});
<input type="button" id="enter" />
$(document).ready(function(){
// 在这里写你的代码...
});
在DOM加载完成时运行的代码
这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度。

简单地说,这个方法纯粹是对向window.load事件注册事件的替代方法。通过使用这个方法,可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数,而99.99%的JavaScript函数都需要在那一刻执行。

有一个参数--对jQuery函数的引用--会传递到这个ready事件处理函数中。可以给这个参数任意起一个名字,并因此可以不再担心命名冲突而放心地使用$别名。

请确保在 <body> 元素的onload事件中没有注册函数,否则不会触发$(document).ready()事件。

可以在同一个页面中无限次地使用$(document).ready()事件。其中注册的函数会按照(代码中的)先后顺序依次执行。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-10-21
貌似 问题大概有2种
第一种是 该执行没有在加载完后执行 也就是说缺少
$(function() {

})
这个函数 (相当于 js 的 window.onload )
尝试一下
$(function() {
$("#enter").toggle(function(){
alert(1);
},
function(){
alert(2);
}
);
})
这样写

另一种 可能是id写错了 (低级错误 应该你不会犯)追问

还是解决不了问题,很奇怪,同样是一个方法,我在一个纯净的页面可以测试成功,但是搬到我这个页面就不行了 奇怪啊

追答

测试通过 代码移动到你的项目页面中就失效的话
有很多种情况 得看源码才知道。。

本回答被提问者采纳
第2个回答  2019-07-10
这个是因为toggle的function方法在1.9版本后被废除了,只能考虑使用替换的方法。
相似回答