【发布时间】:2015-12-01 18:08:00
【问题描述】:
我想在用户点击某些 html 元素时显示一条浮动文本消息;代码是
function avviso(el, e){
var y = e.pageY;
var x = e.pageX;
saved_state = classi[classi.length - 2];
msg = $("#messagge");
$(msg).css('display', 'block');
$(msg).css('top', y-80).css('left', x);
$( "<p>\""+el.textContent+"\"</p>").appendTo(msg);
}
像这样附加到元素上:
$(span).on("click tap", function(event){
var element = this;
avviso(element, event);
}).mouseleave(function(){
$("#messagge").css('display', 'none');
$("#messagge").children().remove();
});
其中 span 是要单击的元素,“#messagge”是应该出现的文本消息的 id,使用以下 css 属性进行初始化:
var n= $("<div id='messagge'></div>");
var styles = {
"display" : "none",
"position":"absolute",
"background-color":"#fff",
"border":"1px solid #000",
"padding":"5px",
"max-width":"200px",
"color":"black",
"font-size":"10px",
}
$(n).css( styles );
$(n).appendTo($("body"))
现在,在所有浏览器中一切正常,除了 chrome 和 Opera,没有出现消息。如果我没有在鼠标离开时将显示属性更改为“无”,我点击的地方会出现一个白色的小方块,但里面没有文字。 我认为它与.css(“display”,“block”)有关,但我不太确定(对不起,如果标题与我的问题不符)。也许我错过了一些可移植性问题?
【问题讨论】:
-
欢迎来到 StackOverflow。如果您在问题中发布 jsfiddle,这将真正帮助我们理解、尝试和解决您的问题。如果您从未这样做过,这里是链接:jsfiddle.net
-
你是如何让
var new = ...在 Firefox 中工作的?这是语法错误。 -
我在写问题时更改了它,实际代码有效 - 现在编辑它,抱歉
-
这一行是关于什么的?
saved_state = classi[classi.length - 2];
标签: jquery css google-chrome opera