我有一个点击事件,并且在事件处理程序中有一个我希望在点击从 A 更改更改已点击按钮的类后执行的功能(通过设置超时)到 B 。
我试过这个,但这不起作用(见jsFiddle):
Button.click(function(){
function myFunction(x,y){
$(this).addClass(x);
alert(x);
$(this).addClass(y);
alert(y);
}
});
setTimeout(function(){
myFunction("aaa","bbb");
}, 100);
myFunction("ccc","ddd");
如何在点击事件后使功能正常工作? 任何帮助表示赞赏。非常感谢你。
答案 0 :(得分:4)
如果单击按钮,则仅定义myfunction()。尝试寻找它:
var Button = $("#button");
function myFunction(x,y){
Button.addClass(x);
alert(x);
Button.addClass(y);
alert(y);
}
Button.click(function() {
myFunction('aaa','bbb');
});
setTimeout(function(){
myFunction("aaa","bbb");
}, 100);
myFunction("aaa","bbb");
答案 1 :(得分:1)
我认为这就是你要找的东西。它与其他答案类似,但仅在单击按钮时调用该函数。
var button = $('button#test');
function myFunction(x,y){
button.addClass(x);
alert(x);
button.addClass(y);
alert(y);
}
button.click(function(){
myFunction("aaa", "bbb");
});
我在这里更新了小提琴:http://jsfiddle.net/mFd5K/3/
答案 2 :(得分:0)
函数myFunction
在不同的词法范围内定义。
请改用:
//You don't want to define the function each time the button is clicked
function myFunction(x,y){
$(this).addClass(x);
alert(x);
$(this).addClass(y);
alert(y);
}
Button.click(function(){
var self = this;
setTimeout(function(){
myFunction.call(butto, "aaa","bbb");
}, 100);
});