情况如下: 我有一个div的垂直菜单。每个div都有一个id。当我点击div时,它会使用以下方法在div中添加一个选择列表:
$ ( '#mydiv' ).on ( 'click', function ( ) {
var select = '<select name="menuList"><option value="test">test</option>...</select>';
$ ( '#mydiv' ).html ( select );
} ) ;
我想做的很简单。我想在选择选项时将用户选择定义为文本。我试过这个,但它不起作用:
$ ( 'select[name="menuList"]').on ('blur', function ( ) {
$ ( '#mydiv' ).html ( $ ( 'select[name="menuList"] option:selected' ).val ( ) );
} );
此外,另一个问题是,当我从列表中选择一个选项时,所选字段不会保留用户选择,它会返回列表的第一个位置。基本上,问题不是真正的问题,因为我立即用包含他选择的文本字段替换列表,但我想了解为什么会这样。
答案 0 :(得分:2)
因为您在click事件上设置HTML(破坏性),所以每次单击div时都会替换html。你最好在document.ready上设置html,然后使用hide / show或者创建一个你设置内容时设置的标志,并在每次点击时检查它,这样你就不会重新创建菜单了。