如何将单击事件绑定到另一个单击元素中的元素

how to bind a click event to an element in another click element

本文关键字:单击 元素 另一个 绑定 事件      更新时间:2023-09-26

绑定到$("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,以便在其他事件中使用。

您可能混淆了两个重要的术语:bindingtriggering。您可能希望在第一个事件的处理程序中触发第二个事件,但无论如何都希望首先绑定这两个事件。否则,您会遇到绑定第二个事件多次,但从未真正触发它的问题。

您通常希望在开始时绑定一次事件,但是您可以根据需要触发多次

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"指的是什么?