Javascript jQuery单击函数内部的单击函数

Javascript jQuery单击函数内部的单击函数,javascript,jquery,Javascript,Jquery,首先,这是我在这里的第一个问题,所以如果重复,我想提前道歉 我有一段代码如下: $("#one").click(function(){ randomNumber = Math.floor(Math.random()*6)+1; $("#two").click(function(event){ console.log(randomNumber); }); }); 第一次一切正常,但第二次我执行时,它显示了第一个随机数,然后是第二个,等等。当单击“一”时,

首先,这是我在这里的第一个问题,所以如果重复,我想提前道歉

我有一段代码如下:

$("#one").click(function(){ 
    randomNumber = Math.floor(Math.random()*6)+1;
    $("#two").click(function(event){
        console.log(randomNumber);
    });
});
第一次一切正常,但第二次我执行时,它显示了第一个随机数,然后是第二个,等等。

当单击“一”时,会生成“随机数”,并将处理程序分配给“二”。这意味着随后单击#one会添加多个处理程序,这意味着代码将被多次输出

如果你只想有一个处理器,你可以这样做

(function(){
     var randomNumber;
     $("#one").click(function(){
         randomNumber = Math.floor(Math.random() * 6) + 1;
     });

     $("#two").click(function(){
         if(randomNumber){
             console.log(randomNumber);
         }
     });
})(} 
编辑:添加了对随机数的测试,这意味着它只在单击第一个按钮后发生`

单击“一”时,将生成randomNumber并为“二”分配处理程序。这意味着随后单击#one会添加多个处理程序,这意味着代码将被多次输出

如果你只想有一个处理器,你可以这样做

(function(){
     var randomNumber;
     $("#one").click(function(){
         randomNumber = Math.floor(Math.random() * 6) + 1;
     });

     $("#two").click(function(){
         if(randomNumber){
             console.log(randomNumber);
         }
     });
})(} 
编辑:添加了对随机数的测试,这意味着它只在单击第一个按钮后发生`

像这样试试

$(document).ready(function(){
    $("#one").click(function(){ 
    randomNumber = Math.floor(Math.random()*6)+1;
    $("#two").click(function(event){
        console.log(randomNumber);
    });
  });
});
像这样试试

$(document).ready(function(){
    $("#one").click(function(){ 
    randomNumber = Math.floor(Math.random()*6)+1;
    $("#two").click(function(event){
        console.log(randomNumber);
    });
  });
});
我期望的行为是:1。你点击#1,就会看到一个随机数 生成2。你点击#2,随机数被打印出来,但是 仅当单击了第一个按钮时,如果没有,则第二个按钮会 没什么

可以使用方法删除以前绑定的事件处理程序。这将防止双重或甚至多重“显示第一个随机数,然后显示第二个,以此类推”

我期望的行为是:1。你点击#1,就会看到一个随机数 生成2。你点击#2,随机数被打印出来,但是 仅当单击了第一个按钮时,如果没有,则第二个按钮会 没什么

可以使用方法删除以前绑定的事件处理程序。这将防止双重或甚至多重“显示第一个随机数,然后显示第二个,以此类推”


好的,在每次单击
#one
时,您会将一个新的单击事件处理程序附加到
#two
,因此您会看到
控制台.log
被多次执行。您试图创建什么行为?您可以使用
$(“#two”).one('click',handler)
但你肯定要做得更好,这取决于你期望的确切行为,例如,如果在任何点击“一”之前点击“二”,你期望的是什么???注意,这里你在全局范围内定义了
randomNumber
,你是对的,我想我没有像我想的那样解释这种行为。。。我期望的行为是:1。点击#1,生成随机数2。您单击#2并打印随机数,但只有在单击第一个按钮时,第二个按钮才会执行任何操作。希望这能更好地解释我试图做的事情……多谢了,您在每次单击
#one
时都会将一个新的单击事件处理程序附加到
#two
,因此您会看到
控制台.log
被多次执行。您试图创建什么行为?您可以使用
$(“#two”).one('click',handler)
但你肯定要做得更好,这取决于你期望的确切行为,例如,如果在任何点击“一”之前点击“二”,你期望的是什么???注意,这里你在全局范围内定义了
randomNumber
,你是对的,我想我没有像我想的那样解释这种行为。。。我期望的行为是:1。点击#1,生成随机数2。您单击#2并打印随机数,但只有在单击第一个按钮时,第二个按钮才会执行任何操作。希望这能更好地解释我在做什么…谢谢你!非常感谢你,但我想我没有正确地解释我想做什么。。。对不起的:(我期望的行为是:1.你点击#1并生成一个随机数2.你点击#2并打印随机数,但只有在第一个按钮被点击的情况下,如果没有,第二个按钮没有任何作用。希望这能更好地解释我在尝试做什么…谢谢你!现在我明白我做错了什么…非常感谢,我it’他完全被困在这个问题上了……这比我想象的要容易得多!:好的!非常感谢你,但我想我没有正确地解释我想做什么……对不起:(我期望的行为是:1.你点击#1并生成一个随机数2.你点击#2并打印随机数,但只有在第一个按钮被点击的情况下,如果没有,第二个按钮没有任何作用。希望这能更好地解释我在尝试做什么…谢谢你!现在我明白我做错了什么…非常感谢,我他完全被这件事缠住了……而且比我想象的要容易得多