如果选项从特定值更改为另一个特定值,则jquery选择触发器操作

时间:2015-07-14 12:36:01

标签: jquery html select html-select

在此代码中。我有'没有路径'选项值在选中时触发。 我有一个没有路径,单声道,立体声,环绕声的层次。环绕是最高选择,没有路径是最低的。

我尝试做的只是如果选项更高,则触发div类,例如。环绕。

因此,如果选项已打开"环绕"然后我改为" Stereo"然后它会触发事件。

如果我来自" Surround"同样适用到" Mono"这也会触发一个事件,因为我会从高到低。

然而......如果我要从" Mono"到" Stereo" (或" Mono" to" Surround)这不会触发事件,因为它会有更高的选择。

我试图手动执行此操作,但代码混乱而且很长,而且没有用。

几乎就像

if - 更改为不太重要(或低于)之前选择的选项的选项 - 触发事件

否则 - 不要触发事件。

我已经搜遍了很多网站并尝试将它们拼凑在一起,但只是在我被卡住之前大约一半。

关于如何做得更好的任何想法?

以下是代码:

脚本

var hello = ('select option:selected');
alert(hello);

$('select').on('change', function () {
    var valueSelected = this.value;

    alert(valueSelected);
    if($(this).val() === 'No Path'){
         $('.do-something').addClass('triggered');   
  }
});

HTML

  <select class="bus-width btn-light-outline">
    <option value="No Path">No Path</option>
    <option value="Mono">Mono</option>
    <option value="Stereo">Stereo</option>
    <option value="Surround">5.1 Surround</option>
  </select>

<div class="do-something">This needs to be triggered</div>

CSS

.do-something {
    position:absolute;
    bottom:70px;
    padding:30px;
    background:white;
    border:1px solid black;
}
.triggered {
  background:green;  
}

https://jsfiddle.net/susannalarsen/dh5ma2j1/

1 个答案:

答案 0 :(得分:1)

以下是使用index()

的解决方案

基本上,索引是文档中显示的元素的位置,因此第一个选项将具有index = 0,第二个选项将具有index = 1,依此类推。我们获取当前所选选项的索引,并将其与上次选择的索引进行比较。

module.exports = exports = db;

演示:https://jsfiddle.net/alan0xd7/dh5ma2j1/5/