jQuery的悬停和点击IE浏览器不工作
问题描述:
我有打算在文档中创建块阵列。它们充当地图上的交互点。 (即使世界的地图图像作为背景和块是正上方的房屋在地图上)jQuery的悬停和点击IE浏览器不工作
for(blocks.length)
var newblock = $("<span data-unit='" + blocks[i].unitnum + "' class='unitwrap' />");
....
newblock.click(function() {...});
newblock.hover(function() {
....
}, function() {
....
});
}
在事件函数我的背景图像添加到跨度元件。在悬停或点击房屋时创建效果。这一切的伟大工程......
除IE
难道这些jQuery函数不工作在IE(悬停和点击),或者是别的东西?
答
为了表明跨度,我给CSS display:inline-block
这里的高度和宽度。
与jQuery创建这个<span>
元素后,它是在DOM(这里例如在'body'
)追加这样的地方盘旋,然后点击可与浏览器进行交互mousehandler(不可见元素不火mouseevents,逻辑^^),
后我的媒体链接给newblock
元素作为选择收拾jQuery的$(newblock)
,帮助其查找机制来知道在哪里的事件监听绑定到DOM
你不能绑定事件监听器直接到document.createElement('span')
这相当于$('<span />')
,你永诺需要把它放在你的DOM的,换句话说,你不能绑定监听器到javascript本身(变量),但对象中的DOM
而只是检查出blocks
的对象结构我做了一个小例子。
<style>
.unitwrap {height:40px; width:40px; display:inline-block; border: 1px solid #f00}
</style>
<script type="text/javascript">
var blocks=[{"unitnum":2},{"unitnum":4}];
var l=blocks.length;
for (var i=0;i<l;i++) {
var newblock = $("<span data-unit='" + blocks[i].unitnum + "' class='unitwrap' />");
$('body').append(newblock);
$(newblock).click(function(){
console.log('yeah clicked');
});
$(newblock).hover(function(){
console.log('plop hovered');
});
}
</script>
jQuery version? IE版本?创建完'newblock'后,你在做什么? – Langdon 2013-05-07 06:09:50
你也是一个{后您的声明中缺少。你应该发布小提琴,也许你应该写: for(var i in blocks.length) – OctoD 2013-05-07 06:12:39
你的'for'循环没有任何分号 - 是你的实际代码吗? – 2013-05-07 06:14:36