我有2个多选 - 我可以将它移动到我在.select-cities中点击的选项到.chosen-cities,但是,它不起作用吗?任何想法为什么不呢?
//Move cities to div
$jq('.select-cities option').click(function () {
return !$jq('.select-cities option:selected').remove().appendTo('.chosen-cities');
});
$jq('.chosen-cities option').click(function () {
alert(this);
$jq('.chosen-cities option:selected').remove().appendTo('.select-cities');
});
HTML:
<select class="select-cities" name="city" multiple="multiple">
<option>Frederiksberg</option>
<option>Vanløse</option>
<option>Glostrup</option>
<option>Brøndby</option>
<option>Roskilde</option>
<option>Køge</option>
<option>Gentofte</option>
<option>Hillerød</option>
<option>Tårnby</option>
<option>Vallensbæk</option>
</select>
<select class="chosen-cities" name="chosen-cities-name" multiple="multiple">
</select>
答案 0 :(得分:4)
$('.select-cities').click(function () {
$('.select-cities option:selected').appendTo('.chosen-cities');
});
$('.chosen-cities').click(function () {
$('.chosen-cities option:selected').appendTo('.select-cities');
});
答案 1 :(得分:1)
选择器选项不会触发点击事件
这是一个可能的解决方法 http://jsfiddle.net/nDvch/1/
答案 2 :(得分:0)
您可能需要使用jQuery live()函数来确保click事件适用于与选择器匹配的所有元素,即使这些元素发生更改:.live()
答案 3 :(得分:0)
首先,我不会使用$jq('.chosen-cities option').click
而是使用$jq('.chosen-cities').change(function () {
。
对于您的实际问题:remove()还会删除所有事件侦听器。更好地使用detach
答案 4 :(得分:0)
您必须将click事件分配给“select”元素。不要“选择”。
请参阅此小提琴:http://jsfiddle.net/fBd5z/