Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML";“多重”;对于多个没有标识的选择框选项,单击并委托jquery的功能_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript HTML";“多重”;对于多个没有标识的选择框选项,单击并委托jquery的功能

Javascript HTML";“多重”;对于多个没有标识的选择框选项,单击并委托jquery的功能,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在使用htmlmultiple作为多个选择框下拉列表。 单击任何选项,我都会添加css类权限选择,将其背景颜色更改为黄色,以显示所选选项。 如果再次单击选中的选项,则会取消选中该选项,并且类权限选择将删除 CSS .permissionsSelection{ background:yellow; } Jquery $("#availablePermissions").delegate(".permissions", "click", function(e) { i

我正在使用html
multiple
作为多个选择框下拉列表。 单击任何选项,我都会添加css类
权限选择
,将其背景颜色更改为黄色,以显示所选选项。 如果再次单击选中的选项,则会取消选中该选项,并且类
权限选择将删除

CSS

.permissionsSelection{
   background:yellow;
 }
Jquery

$("#availablePermissions").delegate(".permissions", "click", function(e) {

        if($(this).hasClass("permissionsSelection")){
            $(this).removeClass("permissionsSelection");
        }
        else{
            $(this).addClass("permissionsSelection");
        }

    });
HTML

<select class="multipleSelectBox" multiple name="availablePermissionsEdit"  id="availablePermissionsEdit">                              <option id="itemId1Edit1" value="option1" class="permissions">option1</option>
<option id="itemId1Edit2" value="option2" class="permissions">option2</option>                                          <option id="itemId1Edit3" value="option3" class="permissions">option3</option>      
</select>
选项1
选项2选项3
这在所有浏览器中都可以正常工作。与往常一样,不在IE8中工作

单击代理功能不启动,我也尝试过使用live、on和click代替代理,但它们都不适用于我


请帮助从IE中保存我,在IE borwser select>选项中单击event dose not work(事件无效),如果要实施,请使用选定的目标事件值,请尝试此代码

$(window).load(function() {
   $("#availablePermissionsEdit").on("click", function(e) { 
     $target = $(this).find("option[value="+this.value+"]");
     if ($target.hasClass("permissionsSelection")) {
         $target.removeClass("permissionsSelection");
     }else {
         $target.addClass("permissionsSelection");
    }
 });
}))

注意请确保选项值应唯一


如果您想从IE中保存自己,请从您的系统中删除它。。这就是项目要求:(您使用的是哪个版本的jQuery?jQuery v1.10.2版选项在某些浏览器中不会触发鼠标事件,主要是在IE上,因此如果您想要跨浏览器支持,将鼠标事件附加到选项元素通常是一个坏主意。此fiddle站点演示不适用于IE8..页面出错up@mayank小提琴在ie8中不起作用,你能放下吗在您的本地系统上运行最新的jquery和fiddle代码,并在ie8$target=$(this.find)(“option[value=“+this.value+”]);这是一个很好的技巧。很高兴能帮助您@mayanklet-us