[英]Jquery attr function not working in IE 9
找到下面的代碼。 我想在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(或者甚至,坦率地說,如果你不是),不要像這樣掛鈎事件處理程序; 使用現代技術連接處理程序,尤其是 因為你已經使用的lib很容易:
$("#remove"+color).on('click', removeBarColor.bind(null, color));
這依賴於ES5的Function#bind
(可以是shimmed); 或者,您可以使用jQuery的proxy
:
$("#remove"+color).on('click', $.proxy(removeBarColor, null, color));
無論哪種方式,這是什么代碼所做的就是創建一個新的函數,調用它時,會調用removeBarColor
傳遞color
作為index
參數(和設置this
到什么特別的,好了,好了,在寬松模式下,它會在window
中,嚴格模式它將為null
。 然后它將該函數指定為click
處理程序。
另一種方法是保存元素上的顏色,然后通過查看被單擊的元素使removeBarColor
工作,但上面是minimal-mods方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.