我正在Symfony的一个项目中工作。我有一个表有一些行,每行的结尾有四个选项。根据每行中选择的选项,我希望整行的颜色发生改变。现在,这段代码可以在jsfiddle上正常工作,但是在我的项目中,对于每一行,当我第一次选择某个选项时,没有任何效果,颜色不会改变。当我第二次选择某个选项时,颜色会改变。这适用于所有行。我希望颜色能够像第一次在jsfiddle中改变一样。链接在这里:https://jsfiddle.net/wqeob4jo/2/动作变化的延迟jQuery
PS:我用的REACT JS
$(document).ready(function() {
$('select').change(function() {
var selectedVal = this.value;
if (selectedVal == "2") {
$(this).closest('tr').removeClass().addClass('not_wanted')
} else if (selectedVal == "3") {
$(this).closest('tr').removeClass().addClass('not_available')
} else if (selectedVal == "4") {
$(this).closest('tr').removeClass().addClass('vacation')
} else if (selectedVal == "5") {
$(this).closest('tr').removeClass().addClass('priority_off')
}
});
});
table td,
th {
border: 1px solid black;
padding-left: 100px;
}
th {
color: black;
}
tr.not_wanted {
color: red;
}
tr.not_available {
color: blue;
}
tr.vacation {
color: orange;
}
tr.priority_off {
color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table">
<tr style="background-color:grey;">
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
</tr>
<tr class="options">
<td>Date 1</td>
<td>Date 2</td>
<td>
<select id="select">
<option value="2">not_wanted</option>
<option value="3">not_available</option>
<option value="4">vacation</option>
<option value="5">priority_off</option>
</select>
</td>
</tr>
<tr class="options">
<td>Date 1</td>
<td>Date 2</td>
<td>
<select id="select">
<option value="2">not_wanted</option>
<option value="3">not_available</option>
<option value="4">vacation</option>
<option value="5">priority_off</option>
</select>
</td>
</tr>
</table>
在Symfony项目中,您的颜色更改代码是否会有另一个javascript冲突?除非存在冲突/代码不同,否则请不要在Symfony第一次在jsFiddle上工作时找不到原因。 – toomanyredirects
我不知道。毫无疑问,通过一些JavaScript代码动态加载,但我无法弄清楚究竟发生了什么问题。 – trollster
尝试在回调函数内添加一个'console.log'行,然后在控制台中查看消息?如果它是第一次触发,但没有发生颜色变化将是一个很好的起点。 – toomanyredirects