gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:02:12 25 4
gpt4 key购买 nike

找到下面的代码。我想在 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>

Jquery 的 attr() 函数似乎在 IE 9 中不起作用。或者我尝试了这个 remove.onclick = function(){removeBarColor(color)};这似乎也不适用于 IE9。

希望我的问题很清楚。感谢您的帮助。

最佳答案

我假设你在谈论这个 attr 行:

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

无论它是否在其他地方工作,如果您正在使用 jQuery(或者,坦率地说,如果您不是),请不要像那样连接事件处理程序;使用现代技术连接处理程序,尤其是。因为使用您已经在使用的库非常简单:

$("#remove"+color).on('click', removeBarColor.bind(null, color));

这依赖于 ES5 的 Function#bind(可以填充);或者,您可以使用 jQuery 的 proxy :

$("#remove"+color).on('click', $.proxy(removeBarColor, null, color));

Live Example

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

另一种方法是保存元素的颜色,然后通过查看被单击的元素来使 removeBarColor 起作用,但以上是最小模组方法。

关于javascript - Jquery attr 函数在 IE 9 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26057280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com