Javascript 是否可以从单击事件返回值?

Javascript 是否可以从单击事件返回值?,javascript,jquery,function,click,return,Javascript,Jquery,Function,Click,Return,这是我正在建造的一支笔 我试图从下拉列表中单击的每个选项返回值,这样我就可以在最后一个框中添加所有选项,但我不知道如何在单击函数之外访问它们,如果可能的话。有人有什么建议吗 var val1 = $("#box1 p:first-child").text() $("#dropdown1 ul li").click(function(){ $("#box1 p:first-child").text($(this).text()); $("#box1 p:first-child").val($(t

这是我正在建造的一支笔

我试图从下拉列表中单击的每个选项返回值,这样我就可以在最后一个框中添加所有选项,但我不知道如何在单击函数之外访问它们,如果可能的话。有人有什么建议吗

var val1 = $("#box1 p:first-child").text()

$("#dropdown1 ul li").click(function(){
$("#box1 p:first-child").text($(this).text());
$("#box1 p:first-child").val($(this).text());


val1 = $("#box1 p:first-child").text();

})

你在文章中包含的代码应该是有效的。每次单击dropdown1时,应更改val1。但是,在链接到的笔中,您有:

$(“#dropdown1 ul li”)。单击(函数(){
$(“#box1 p:first child”).text($(this.text());
$(“#box1 p:first child”).val($(this.text());
var val1=$(“#box1 p:first child”).text();
//...

}
你的意思是这样的吗

var-val1;
$(“#下拉列表1 ul li”)。单击(函数(){
$(“#box1 p:first child”).text($(this.text());
$(“#box1 p:first child”).val($(this.text());
val1=$(“#box1 p:first child”).text();

})
这取决于“return”的确切含义……因为,不,您不能从异步回调返回到外部函数。您可以更新外部函数中定义的变量,但这可能不会产生您想要的效果。我该如何准确地做到这一点?因为我已尝试警告在函数中设置的变量(val1)在函数外部,但全局变量保持不变。警报不会在单击之前很久发生?这是我所指的不希望发生的效果。变量的值会得到更新,但这不会影响更新前使用变量值的内容。警报会在单击之前发生,并显示“1”因为这是我在click事件之前设置val1的值,所以我尝试用代码$(“box6 p:first child”)更新框6的文本。文本(val1)在click函数之外,在click事件发生后,但仍显示“1”,我知道可以通过在函数中声明将框6的文本更新为val1,但这不允许我将其添加到其他下拉列表/函数上的其他选项“单击”中。我尝试使用新的val1值更新框6的文本,在val1之前添加VAR1,并使用$(“#box6 p:first child)。文本(val1)单击之后,它仍然显示我在全局范围上设置的值,您不需要“var”。如果没有“var”它仍然无法工作,那么肯定存在一些问题,而不是我上面描述的问题。