How*_*Gee 4 javascript jquery click toggle
我正在尝试创建一个切换功能,因此当您单击链接时,它会做一件事,而当您再次单击同一链接时,它会做另一件事。我的问题是我使用的是最新版本的 Jquery,似乎 toggle-event 已弃用。
在我发现它已被弃用之前,我试图使用它。
$('#edit a').toggle(
function(){
editList();
},
function(){
addList();
});
Run Code Online (Sandbox Code Playgroud)
它在文档中说它已经绑定到点击。
一个微型 jQuery 插件:
jQuery.fn.clickToggle = function(a,b) {
var ab = [b,a];
return this.on("click", function(){ ab[this._tog^=1].call(this); });
};
// USE LIKE:
$("button").clickToggle(function() {
console.log("AAA");
}, function() {
console.log("BBB");
}); // Chain here other jQuery methods to your selector
Run Code Online (Sandbox Code Playgroud)
摘自我在这里的回答/sf/answers/1506434961/
还有其他方法可以切换状态/值:
var editAdd = [editList, addList], // store your function names into array
c = 0; // toggle counter
function editList(){ // define function
alert('EDIT');
}
function addList(){ // define function
alert('ADD');
}
$('#edit a').click(function(e){
e.preventDefault();
editAdd[c++%2](); // toggle array index and use as function
// % = Modulo operator
});
Run Code Online (Sandbox Code Playgroud)
%您可以使用
按位异或运算符 代替模运算符,^例如:[c^=1]
使用 Array.reverse()
现场演示
var editAdd = [editList, addList];
function editList(){
alert('EDIT');
}
function addList(){
alert('ADD');
}
$('#edit a').click(function(e){
e.preventDefault();
editAdd.reverse()[0]();
});
Run Code Online (Sandbox Code Playgroud)
reverse 将在每次点击时反转我们的数组,我们需要做的就是获取 0 索引值[0]并运行该函数 name [0]()。