绑定到$("播放")的第二次点击事件不会执行。如何在点击事件下绑定另一个点击事件?如果我在第一次点击事件之外写下第二次点击事件,我就无法得到数据newNumber。
这段代码在slide()函数中。
var that = this;
$("#stop").click(function(){
clearInterval(set);
var newNumber = [num, numb, list]; //the value needed by click event that is binded to "play"
$("play").click(newNumber, function() {
num = newNumber[0];
numb = newNumber[1];
list = newNumber[2];
that.slide(image, num, list, numb);
});
});
答案 0 :(得分:1)
您可能会混淆两个重要字词:binding
和triggering
。您可能希望在第一个事件的处理程序中触发第二个事件,但是您希望将两个事件绑定到始终。否则,您会遇到多次绑定第二个事件但从未真正触发它的问题。
您通常希望在开始时绑定一次事件,但可以根据需要多次触发。
var that = this;
var newNumber;
$("#stop").click(function(){
clearInterval(set);
newNumber = [num, numb, list]; //the value needed by click event that is binded to "play"
$("#play").click(); // trigger the second <=======
});
$("#play").click(function() {
num = newNumber[0];
numb = newNumber[1];
list = newNumber[2];
that.slide(image, num, list, numb);
});
但我要问的问题是,这是什么&#39;参考?
答案 1 :(得分:1)
使用此方法 - 正确的方法是触发:
var that = this;
var newNumber = [];
$("#stop").click(function(){
clearInterval(set);
newNumber = [num, numb, list]; //the value needed by click event that is binded to "play"
$("play").click() //or $("play").trigger('click')
});
$("play").click(function() {
num = newNumber[0];
numb = newNumber[1];
list = newNumber[2];
that.slide(image, num, list, numb);
});