我的伪代码
$("#oneElement").bind(
"change",
{
field:$("#theDropDownList").find("option:selected").text()
},
theFunction
);
当$("#oneElement")
发生变化时,会调用theFunction (event) {}
,我希望在$("#theDropDownList")
中找到event.data.field
中的选定值。
但field
永远不会在我加载网页后更新,即使多次更改$("#oneElement")
后也是如此。
**编辑:** theFunction
看起来像
function theFunction(event) {
console.log(event.data.field);
//do whatever
}
欢迎所有帮助!
答案 0 :(得分:0)
对象值在绑定期间计算一次,并在触发事件时传递给函数。如果你想实时获得价值,你不应该在绑定时将其作为数据传递。从函数中获取它,因为它在触发事件后执行。
$("#oneElement").bind(
"change",
{
field:$("#theDropDownList").find("option:selected").text()
},
function(event){
//bind time
console.log(event.data.field);
//run time
console.log($("#theDropDownList").find("option:selected").text());
}
);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="" id="theDropDownList">
<option value="1">text 1</option>
<option value="3">text 2</option>
<option value="3">text 3</option>
</select>
<input type="text" id="oneElement"/>
&#13;
答案 1 :(得分:-1)
我建议您使用bind
,而不是弃用的on
。
你可以这样做:
$("#oneElement").on("change", theFunction);
function theFunction() {
var someValue = $("#theDropDownList").find("option:selected").text();
}