$element.show()在IE中不起作用
$element.show() not working in IE?
我在$tip
中存储了一个小div
,当用户点击某个链接时,我想将其显示在用户的点击位置。这就是我正在做的,它是一个插件的一部分,其中$this
是一个动态创建的已知对象:
$this.children('.menu').children('.details').bind('click', function(e){
$tip = $('#resizetip');
tiptext = "some text for my sweet little tip";
$tip.css('top',e.clientY);
$tip.css('left',e.clientX);
$tip.html(tiptext);
$tip.show();
});
提示显示在预期的位置,在Chrome和FF中都很好,但我不知道为什么它在IE8甚至IE9中都不起作用。我尝试了console.log($tip.html());
,它给出了预期的输出,所以我知道它在某个地方。我试着输出坐标,结果很好。
然后我从控制台显式地尝试了$('#resizetip').show();
,它成功了!它出现了,正好在它应该出现的地方。但为什么它在代码中不起作用呢?我试着添加另一行$tip.show();
,以防由于某种莫名其妙的原因第一行无法启动,但这无济于事。
编辑
我在代码中添加了一个编辑,以显示e
的来源,但我知道这不是问题所在,因为当我将e.clientX
输出到控制台时,输出是好的。
这肯定是"e"不可用的问题。查看此网站以了解跨浏览器对此问题的解释:http://www.quirksmode.org/js/events_properties.html
基本上,你必须检查"e"是否存在,如果没有用窗口分配它。事件:
函数doSomething(e){如果(!e)var e=window.event;。。。。}
您很可能需要类似的东西:
if (!e){
var e = window.event
}
在您的函数顶部附近。可能没有为IE定义e
,因此您需要恢复到window.event
。你可以在这里阅读更多
用于IE 的clientX文档
设置一些单位并使用pageX和pageY代替
$tip.css({
'top', e.pageY+ "px",
'left',e.pageX + "px"
);
相关文章:
- window.opener.document在ie中不起作用
- 为什么Telerik cdn在IE中不起作用
- JQuery脚本在IE中不起作用
- 默认光标在IE和Mozilla中不起作用
- Asp自定义验证器在IE-11中不起作用
- knockoutjsforeach在IE 9中不起作用
- 谷歌分析在IE中不起作用
- javascript中的SVG转换在IE 11中不起作用
- 用于播放背景音乐的嵌入式flash播放器在IE浏览器中不起作用
- 在IE中切换javascript不起作用的复选框
- JQuery日期选择器在IE 7上不起作用
- HTML表单在IE中不起作用
- Javascript style.background在IE中不起作用
- 对<asp:IE 10的TextBox;不起作用
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- SPA异步调用在IE 11中不起作用
- 脚本在IE 9中不起作用
- ng-单击在IE中不起作用的选项选择Angularjs
- JQuery 双击侦听器在选择 - IE 不起作用
- 脸书登录IE不起作用