在事件发生后更改变量的值
Changing the value of a variable after an event
现在在下面的代码中 var selected
没有改变(我猜它输出的是空字符串)。我需要你帮我更改 selected 变量,使值始终为 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 = (function(){
var selected = "";
return {
add : function(el){
selected = $(el).val();
},
output : function(){
alert(selected)
}
}
})()
$("select").on("change", function(e){
e.preventDefault()
isSelected.add(this);
isSelected.output();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="">Select combo</option>
<option value="Value1">Text1</option>
<option value="Value2">Text2</option>
<option value="Value3">Text3</option>
</select>
使用this
关键字获取当前对象。请检查解决方案,希望这是您需要的
问题是绑定到 add()
函数中的更改事件。您已经捕获了更改事件,因此当 add()
运行时,它会添加另一个更改处理程序,直到下一个更改事件触发时才会触发。
解决方案是将所选值作为参数传递给add()
。
I also want to be able to use that updated variable later in the code
只需添加另一个函数,例如 getSelected()
值 returns。
var isSelected = (function(){
var selected = "";
return {
add : function(value){
selected = value;
},
output : function(){
alert(selected);
},
getSelected : function(){
return selected;
}
}
})();
$("select").on("change", function(){
isSelected.add(this.value);
isSelected.output();
var selected = isSelected.getSelected();
console.log(selected);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>One</option>
<option>Two</option>
<option>Three</option>
</select>
现在在下面的代码中 var selected
没有改变(我猜它输出的是空字符串)。我需要你帮我更改 selected 变量,使值始终为 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 = (function(){
var selected = "";
return {
add : function(el){
selected = $(el).val();
},
output : function(){
alert(selected)
}
}
})()
$("select").on("change", function(e){
e.preventDefault()
isSelected.add(this);
isSelected.output();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="">Select combo</option>
<option value="Value1">Text1</option>
<option value="Value2">Text2</option>
<option value="Value3">Text3</option>
</select>
使用this
关键字获取当前对象。请检查解决方案,希望这是您需要的
问题是绑定到 add()
函数中的更改事件。您已经捕获了更改事件,因此当 add()
运行时,它会添加另一个更改处理程序,直到下一个更改事件触发时才会触发。
解决方案是将所选值作为参数传递给add()
。
I also want to be able to use that updated variable later in the code
只需添加另一个函数,例如 getSelected()
值 returns。
var isSelected = (function(){
var selected = "";
return {
add : function(value){
selected = value;
},
output : function(){
alert(selected);
},
getSelected : function(){
return selected;
}
}
})();
$("select").on("change", function(){
isSelected.add(this.value);
isSelected.output();
var selected = isSelected.getSelected();
console.log(selected);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>One</option>
<option>Two</option>
<option>Three</option>
</select>