Jquery代码在windows上工作,但不能在Mac或Safari上工作
Jquery code working on windows but not on Mac or Safari
下面的函数从所有其他选择菜单中删除选中的选项,它在windows chrome和firefox上工作得很好,但在Safari或Mac上不行。
你知道是什么原因引起的问题吗?
HTML代码:<select>
<option>slelect</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<select>
<option>slelect</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<select>
<option>slelect</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<select>
<option>slelect</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
jQuery代码:
(function () {
var previous;
$("select").on('focus', function () {
previous = this.value;
}).change(function(){
$elm = $(this).children('option:selected');
$a = $elm.val();
$('option[value=' + $a + ']').not($elm).hide();
$('option[value=' + previous + ']').not($elm).show();
});
})();
这是因为.hide()只是在选项中添加了一个display:none css属性问题就在这几行:
$('option[value=' + $a + ']').not($elm).hide();
$('option[value=' + previous + ']').not($elm).show();
如果我们改变这些使用禁用状态,它会像预期的那样工作
$('option[value=' + $a + ']').not($elm).attr('disabled', 'disabled');;
$('option[value=' + previous + ']').removeAttr("disabled");
你所看到的是浏览器在选择列表样式上的差异。一些浏览器允许你做一些事情,比如改变背景颜色。有些人不会,这就是为什么这是一个糟糕的方法。只需使用disabled状态即可。
http://jsfiddle.net/o9qgmut8/相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- 按钮处于活动状态,焦点无法在Mac FireFox上工作
- chrome.hid.send 在 PC 上失败,但在 Mac 上工作
- Chrome本地存储;t在Mac OS中工作属性
- onclick event window.location.htm无法在mac操作系统上工作
- Jquery代码在windows上工作,但不能在Mac或Safari上工作
- Node grunt-contrib-connect服务器只在Mac安全模式下工作
- HTML5视频幻灯片不工作在Mac FF或Safari
- EaselJS不工作在mac和iOS的webapp
- 选择选项字体系列在MAC os(chrome和safari浏览器问题)和windows safari浏览器问题中不工作
- 不能让CasperJS在Mac OSX上工作
- 悬停效果可以在大多数浏览器上工作,但不能在MAC上的safari或chrome上工作
- 如何让Mac平滑滚动在元素上工作
- createElement函数不能与MAC Safari一起工作
- appendChild不工作,firefox在mac上
- 在MAC firefox浏览器中,超链接无法工作
- HTML画布-文本阴影不能在Mac上工作
- 如何获得Alt + C(或任何其他键)在Chrome上的Mac和windows的JavaScript工作