当我们再次选择所选选项时,如何在所选选项上触发事件

时间:2017-02-28 06:40:05

标签: javascript jquery twitter-bootstrap

  • 当我选择选项' 2'它打开bootstrap - modal.so第一次 它会打开modal.now选项' 2'已被选中。现在再次点击 选项' 2'。它不会触发任何变化事件,所以,我的引导程序 莫代尔没有打开。因为我在改变中写了逻辑 事件
  • 那么,如何在所选选项上触发更改事件。

3 个答案:

答案 0 :(得分:3)

尽管change事件会触发click事件select option上的模式

$('select option').on('click',function(){
      $("#modelId").modal('show');
});

答案 1 :(得分:2)

使用默认值选项创建一个选择。

<select id="slt">
    <option value="default">Select Something</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

每次都处理非defaultValue选项的change事件,然后将默认选项重置为selected。

var $slt = $('#slt'),
    defaultValue = 'default';

function handleChange(e){
    var val = $slt.val();

    // do nothing for defaultValue being selected
    if (val === defaultValue) {
        return;
    }

    // do something else
    console.log(val);

    // reset the value to defaultValue
    $slt.find('option:selected').prop('selected', false);
    $lst.find('option').eq(0).prop('selected', true);
}

$slt.bind('change', handleChange);

但是这会使select总是显示为“Select Something”。

这是一个关于此的演示:http://codepen.io/shuizhongyueming/pen/JWYYLJ

我找到了另一个解决方案,这比我的好。

https://stackoverflow.com/a/12404521/2279763

使用selectedIndex重置焦点上的选定值,不需要defaultValue选项,并在点击后显示所选选项。

这是评论中的演示:http://fiddle.jshell.net/ecmanaut/335XK/

答案 2 :(得分:1)

您还可以使用模态功能

$('select option').on('click'function(){
    $('modelId').modal('show');
});