Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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 $element.show()在IE中不工作?_Javascript_Jquery_Internet Explorer_Visibility - Fatal编程技术网

Javascript $element.show()在IE中不工作?

Javascript $element.show()在IE中不工作?,javascript,jquery,internet-explorer,visibility,Javascript,Jquery,Internet Explorer,Visibility,我有一个小的div存储在$tip中,当用户点击某个链接时,我想在用户的点击位置显示它。 这就是我正在做的,它是一个插件的一部分,$This是一个动态创建的已知对象: $this.children('.menu').children('.details').bind('click', function(e){ $tip = $('#resizetip'); tiptext = "some text for my sweet little tip"; $tip.css('top',

我有一个小的
div
存储在
$tip
中,当用户点击某个链接时,我想在用户的点击位置显示它。 这就是我正在做的,它是一个插件的一部分,
$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
输出到控制台时,输出很好。

很可能您需要类似于:

if (!e){ 
  var e = window.event
}
在函数的顶部附近<代码>e
可能未为IE定义,因此您需要恢复到。你可以读更多


设置一些单位,并使用pageX和pageY代替

$tip.css({
    'top', e.pageY+ "px", 
    'left',e.pageX + "px"
);

这肯定是“e”不可用的问题。请访问此网站,了解有关此问题的跨浏览器解释:

基本上,您必须检查“e”是否存在,如果不存在,则将其分配给window.event:

功能剂量测定法(e){ 如果(!e)var e=window.event; ....
}

您在哪里停车?你能用一个JSFIDLE来重现这个问题吗?你能用更多的上下文和一个例子来发布代码吗?如果你只提供整数,jQuery会添加
px