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并打印随机数,但只有在第一个按钮被点击的情况下,如果没有,第二个按钮没有任何作用。希望这能更好地解释我在尝试做什么…谢谢你!现在我明白我做错了什么…非常感谢,我他完全被这件事缠住了……而且比我想象的要容易得多