Javascript 在事件发生后更改变量的值

Javascript 在事件发生后更改变量的值,javascript,variables,object,scope,onchange,Javascript,Variables,Object,Scope,Onchange,现在在下面的代码中,var selected没有改变(我猜它输出空字符串)。我需要您帮助我更改所选变量,以便该值始终为所选选项(在select元素中)。我还希望以后能够在isSelected函数之外的代码中使用更新后的变量 var isSelected = (function(){ var selected = ""; return { add : function(){ $("select").on("change", function(

现在在下面的代码中,
var selected
没有改变(我猜它输出空字符串)。我需要您帮助我更改所选变量,以便该值始终为所选选项(在select元素中)。我还希望以后能够在
isSelected
函数之外的代码中使用更新后的变量

var isSelected =  (function(){
  var selected = "";

    return {
        add : function(){
            $("select").on("change", function(){
                selected = $(this).val()
            })
        },
        output : function(){
            alert(selected)
        }
    }
})()

$("select").on("change", function(){
    isSelected.add();
    isSelected.output();
})
谢谢,我正在努力学习编程
var isSelected=(函数(){
var selected=“”;
返回{
加:功能(el){
选定=$(el.val();
},
输出:函数(){
警报(选定)
}
}
})()
$(“选择”)。关于(“更改”,功能(e){
e、 预防默认值()
添加(本);
isSelected.output();
})

选择组合
文本1
文本2
文本3

问题绑定到
add()
函数中的更改事件。您已经捕获了更改事件,因此当运行
add()
时,它会添加另一个更改处理程序,直到触发下一个更改事件后才会触发

解决方案是将所选值作为参数传递给
add()

我还希望能够在以后的代码中使用更新的变量

只需添加另一个函数,比如返回值的
getSelected()

var isSelected=(函数(){
var selected=“”;
返回{
附加:功能(值){
所选=值;
},
输出:函数(){
警报(选定);
},
getSelected:函数(){
返回选中的;
}
}
})();
$(“选择”)。在(“更改”,函数()上{
isSelected.add(此值);
isSelected.output();
var selected=isSelected.getSelected();
console.log(选中);
})

一
二
三

add方法是否会触发?我不知道当我更改选项时,我得到的只是一个空白的警告框。