[英]Why is jquery toggle not working?
我只想让变量在true和false之间切换,并单击button
上的文本以进行更改。 这是我的Jquery:
$("button").toggle(
function () {
$(this).text("Click to change to paint brush");
var erasing = true;
},
function () {
$(this).text("Click to change to eraser");
var erasing = false;
}
);
在我看来 ,这是100%的声音,但是在我的jsfiddle中,您会发现它甚至在我单击按钮之前就已经在切换按钮的存在! 为什么会发生这种情况,我该如何解决?
此版本的切换功能已弃用(1.8),已删除(1.9)。 现在,您需要通过单击按钮本身来处理它。 像这样的东西:
var erasing = false;
$("button").click(function () {
erasing = !erasing;
$(this).text(function (_, curText) {
return curText == "Click to change to paint brush" ? "Click to change to eraser" : "Click to change to paint brush" ;
});
console.log(erasing);
});
另外,如果您想保留变量的值,只需在click事件范围之外定义它们即可,这样可以在外部进行全局访问。
看到
谢谢大家解释切换如何过时...所以这就是我所需要的,然后我用一个简单的if
语句解决了我的问题:
var erasing = false;
var i = 0
$("button").click(function () {
if(i%2==0){
$(this).text("Click to change to paint brush");
erasing = true;
}
else{
$(this).text("Click to change to eraser");
erasing = false;
};
i += 1
});
正如PSL所说,您要查找的toggle
不见了并且丢失了 。 如果您想要一个单击并按住的解决方案(如标题所示),则可以使用mouseup
和mousedown
查看。
var erasing;
$("button").on({
"mousedown": function () {
$(this).text("Click to change to paint brush");
erasing = true;
},
"mouseup mouseleave": function () {
$(this).text("Click to change to eraser");
erasing = false;
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.