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

时间:2014-06-13 17:25:29

标签: javascript jquery

绑定到$("播放")的第二次点击事件不会执行。如何在点击事件下绑定另一个点击事件?如果我在第一次点击事件之外写下第二次点击事件,我就无法得到数据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);
    });
});

2 个答案:

答案 0 :(得分:1)

您可能会混淆两个重要字词: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);
});

但我要问的问题是,这是什么&#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);
});

  • 使用 .trigger() 明确绑定点击事件。
  • 全局范围中定义数组newNumber,以便在其他事件中使用它。