繁体   English   中英

jQuery适用于Chrome和firefox,但不适用于IE

[英]jQuery works in Chrome and firefox, but not IE

首先,对可怜的标题表示歉意,但是老实说,我对jQuery不够了解,无法具体说明什么不起作用,而其他类似标题的问题也无法提供有效的解决方案。

我有以下代码,该代码允许用户在不按住ctrl的情况下选择多个选项,并且如标题所示,除了IE(我当前使用的是IE 11)之外,它都可以正常工作。

function MultiSelect()
{
    $('.select-toggle').each(function(){    
        var select = $(this), values = {};    
        $('option',select).each(function(i, option){
            values[option.value] = option.selected;        
        }).click(function(event){        
            values[this.value] = !values[this.value];
            $('option',select).each(function(i, option){            
                option.selected = values[option.value];        
            });    
        });
    });
}

它是从html选项框中调用的

<script type="text/javascript">

$(document).ready(function() {
    MultiSelect();
});

<script>

</head>
<body>

...
<tr>
    <td colspan="2">
        <label for="defendants">Defendant(s):</label>
        <select class="select-toggle" name="people" id="people" multiple="multiple" >
            <option value="John Smith">John Smith</option>
            <option value="Julie Smith">Julie Smith</option>     
        </select>
    </td>
</tr>

谢谢

IE浏览器不支持option单击事件,您需要在select元素上添加事件,请参见以下代码

$(document).ready(function() {
    MultiSelect();
});
function MultiSelect()
{
    $('.select-toggle').each(function(){    
        var select = $(this), values = {};    
        $('option',select).each(function(i, option){
            values[option.value] = option.selected;        
        });
        $(this).click(function(event){        
            values[this.value] = !values[this.value];
            $('option',select).each(function(i, option){            
                option.selected = values[option.value];        
            });    
        });
    });
}

DEMO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM