如何将单击事件绑定到另一个单击元素中的元素
how to bind a click event to an element in another click element
绑定到$("play")的第二个点击事件不执行。如何在单击事件下绑定另一个单击事件?我不能得到数据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);
});
});
使用这个-正确的方法是触发:
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);
});
- 使用.trigger()显式绑定点击事件。
- 在全局作用域中定义数组newNumber,以便在其他事件中使用。
您可能混淆了两个重要的术语: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);
});
但我要问的问题是,"this"指的是什么?
相关文章:
- 单击元素外部时进行JQuery
- 单击p元素时的javascript触发事件
- 单击元素的x/y点
- 单击元素两次后执行操作
- 在使用jQuery第二次单击元素类后开始操作
- 页面加载后自动单击元素
- 检查气泡中的单击元素
- 单击元素时出现问题,这些元素是用.html()添加到页面的
- 单击元素时移除类并添加类
- 单击元素后Jquery选择器不工作
- 在单击元素部分时显示元素的代码
- 如果用户多次单击元素,如何避免争用条件
- 单击元素时,JQuery 不会更改具有“活动”类的元素
- 在 JavaScript / jQuery 回调中使用“this”更改单击元素的文本
- 如何防止在拖动时单击元素
- 通过 jquery .on() 函数将单击元素的属性值传递给外部函数
- Angularjs 指令单击元素
- jQuery 和单击元素中的第一个元素
- 单击元素时重新加载 iframe src
- 防止单击元素上的单击事件