我正在尝试执行以下操作:使用jquery显示下拉列表,其结构类似于:
现在,我想要有以下行为:用户查看“添加元素”并单击它。然后,他选择其中一个元素,调用一些函数,然后下拉选择返回标题“添加元素”。
这是我希望的工作:
$('#elementselect').change(function(e) {
selectedIndex = $("#gadgetselect").attr('selectedIndex');
if (selectedIndex != 0) {
var selectmenu = document.getElementById("elementselect");
chosenoption = selectmenu.options[selectedIndex];
load_element(chosenoption.value);
$("#elementselect").attr('selectedIndex', 0);
}
});
如果选择了元素1,则调用.change并调用load_element函数。将selectedIndex设置回0后,再次调用.change函数,但selectedIndex仍为1。所以load_element函数被调用两次......有什么想法吗?
答案 0 :(得分:0)
直接访问selectedIndex
元素的<select>
属性。另外,使用var
关键字来声明局部变量,除非您真的希望selectedIndex
可以在事件处理函数之外访问。
var selectedIndex = $("#gadgetselect")[0].selectedIndex;
// ...
this.selectedIndex = 0;
如果你真的必须使用jQuery的prop()
方法,但在这种情况下这样做没有任何好处。
var selectedIndex = $("#gadgetselect").prop("selectedIndex");
// ...
$(this).prop("selectedIndex", 0);