Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 Jquery attr函数在IE 9中不起作用_Javascript_Jquery_Html_Internet Explorer - Fatal编程技术网

Javascript Jquery attr函数在IE 9中不起作用

Javascript Jquery attr函数在IE 9中不起作用,javascript,jquery,html,internet-explorer,Javascript,Jquery,Html,Internet Explorer,找到下面的代码。我想在IE中使用相同的功能。我正在努力使它在IE 9上工作 <html> <head> <script src="https://code.jquery.com/jquery-1.11.1.js"></script> <script type="text/javascript"> var colors= ["#99b433", "#00a300", "#1e7145"];

找到下面的代码。我想在IE中使用相同的功能。我正在努力使它在IE 9上工作

<html>
    <head>
    <script src="https://code.jquery.com/jquery-1.11.1.js"></script>
    <script type="text/javascript">
        var colors= ["#99b433", "#00a300", "#1e7145"];
        $(document).ready(function(){
            addBarColor();
        });

        var addBarColor = function(){
            $('#lineColors').html("");
            for(var color=0; color<colors.length; color++){
                //Loading List of colors
                var chartBarColor = colors[color];
                var li = document.createElement('li');
                li.style.width = "50px";
                li.style.backgroundColor = chartBarColor;

                //Adding Remove button to it.
                var remove = document.createElement('span');
                remove.id = "remove"+color;
                remove.style.cursor="pointer";
                remove.style.marginLeft = "40px";

                //remove.onclick = function(){removeBarColor(color)};

                //Adding x image
                var removeImg = document.createElement('img');
                removeImg.src = "https://cdn1.iconfinder.com/data/icons/diagona/icon/10/101.png";

                //Appedning everything to UL
                remove.appendChild(removeImg);
                li.appendChild(remove);
                $('#lineColors').append(li);

                $("#remove"+color).attr('onclick', 'removeBarColor(\''+color+'\')');
            }
        }

        //Removing the color from the array
        var removeBarColor = function (index){
            alert(index);
            colors.splice(index, 1);
            console.log(colors);
            addBarColor();
        };
    </script>
    </head>
    <body>
        <ul id="lineColors">
        </ul>
    </body>
</html>

变量颜色=[“#99b433”、“#00a300”、“#1e7145”];
$(文档).ready(函数(){
addBarColor();
});
var addBarColor=函数(){
$('#lineColors').html(“”);

对于(var color=0;color我假设您正在谈论这条
attr
行:

$("#remove"+color).attr('onclick', 'removeBarColor(\''+color+'\')');
无论它是否在其他地方工作,如果您正在使用jQuery,请不要像这样连接事件处理程序(或者,坦白说,如果您没有这样做),使用现代技术连接处理程序,特别是使用您已经使用的lib,这非常容易:

$("#remove"+color).on('click', removeBarColor.bind(null, color));
这依赖于ES5的
函数#bind
(可以填充);或者,您可以使用jQuery的:

无论哪种方式,该代码所做的是创建一个新函数,当调用该函数时,该函数将调用
removeBarColor
,将
color
作为
index
参数传入(并将
this
设置为nothing;好的,在松散模式下它将是
window
,在严格模式下它将是
null
)。然后它将该函数指定为
单击
处理程序


另一种方法是保存元素上的颜色,然后通过查看单击的元素让
removeBarColor
工作,但以上是最小的mods方法。

其工作非常拥挤。感谢您的支持。:)
$("#remove"+color).on('click', $.proxy(removeBarColor, null, color));