jquery在mouseover事件上接收空值(来自div标记)
我试图使用pnoty jquery库来实现我自己的目的。当用户将鼠标悬停在一个术语上时,我将从xml文件中检索术语名称和描述,并在工具提示中显示它们。我能够成功地检索术语数据,但在将它们传输到jquery函数时遇到问题(我在jquery中总是得到空值)。我认为jquery是在加载页面时加载的,因此,将字段设置为空 正如您在下面的a href代码中所看到的,我有自己的函数DisplayAlert,它可以完美地工作,并将术语相关值加载到术语名称和定义div标记中jquery在mouseover事件上接收空值(来自div标记),jquery,html,onmouseover,Jquery,Html,Onmouseover,我试图使用pnoty jquery库来实现我自己的目的。当用户将鼠标悬停在一个术语上时,我将从xml文件中检索术语名称和描述,并在工具提示中显示它们。我能够成功地检索术语数据,但在将它们传输到jquery函数时遇到问题(我在jquery中总是得到空值)。我认为jquery是在加载页面时加载的,因此,将字段设置为空 正如您在下面的a href代码中所看到的,我有自己的函数DisplayAlert,它可以完美地工作,并将术语相关值加载到术语名称和定义div标记中 <a href="#" onm
<a href="#" onmouseover="javascript:DisplayAlert('qrCode');tooltip.pnotify_display();" onmousemove="tooltip.css({'top': event.clientY+12, 'left': event.clientX+12});" onmouseout="tooltip.pnotify_remove();">EWOM</a>
然后,在上面的a href中调用tooltip.pnotify_display()fn,我调用jquery函数,如下所示。问题是$(“#term”).text()和$(“#definition”).text()总是返回空值
<script type="text/javascript">
var permanotice, tooltip, _alert;
$(function(){
//$.pnotify.defaults.styling = "bootstrap3";
// This notice is used as a tooltip.
var make_tooltip = function(){
alert(document.getElementById("term").innerHTML);//alert("test1");
tooltip = $.pnotify({
title: $("#term").text(),
text: $("#definition").text(),
hide: false,
closer: false,
sticker: false,
history: false,
animate_speed: 100,
opacity: 1,
icon: "ui-icon ui-icon-comment",
// Setting stack to false causes PNotify to ignore this notice when positioning.
stack: false,
after_init: function(pnotify){
// Remove the notice if the user mouses over it.
pnotify.mouseout(function(){
pnotify.pnotify_remove();
});
},
before_open: function(pnotify){
// This prevents the notice from displaying when it's created.
pnotify.pnotify({
before_open: null
});
return false;
}
});
}
// I put it in a function so I could show the source easily.
make_tooltip();
});
</script>
变量永久性,工具提示,警告;
$(函数(){
//$.pnotify.defaults.style=“bootstrap3”;
//此通知用作工具提示。
var make_tooltip=函数(){
警报(document.getElementById(“term”).innerHTML);//警报(“test1”);
工具提示=$.pnotify({
标题:$(“#术语”).text(),
text:$(“#定义”).text(),
隐藏:错,
闭嘴:错,
贴纸:假的,
历史:错,
动画速度:100,
不透明度:1,
图标:“用户界面图标用户界面图标注释”,
//将stack设置为false会导致PNotify在定位时忽略此通知。
堆栈:false,
在初始化之后:函数(pnotify){
//如果用户将鼠标移到通知上,请删除该通知。
pnotify.mouseout(函数(){
pnotify.pnotify_remove();
});
},
打开前:功能(pnotify){
//这样可以防止在创建通知时显示该通知。
pnotify.pnotify({
打开前:空
});
返回false;
}
});
}
//我把它放在一个函数中,这样我可以很容易地显示源代码。
制作工具提示();
});
我在这方面下了很大的功夫,但还是搞不懂。有什么建议吗?为了确保函数按正确的顺序启动,我建议在文档中绑定悬停和鼠标移出事件。准备好的函数如下:
$(function() {
$("#hoverLink").hover(function() {
DisplayAlert('qrcode');
tooltip.pnotify.display();
//do all your hover stuff here
}, function() {
tooltip.pnotify.remove();
// do all your mouseout stuff here
}).on("mousemove", function(e) {
tooltip.css({'top': e.clientY+12, 'left': e.clientX+12});
});
});
差不多吧。我认为这将更清楚地将您的逻辑从呈现中分离出来,并使测试和调试更容易(您可以通过控制台日志和其他方式查看到底发生了什么)您能用所有适用的代码设置一个JSFIDLE吗,这样我们就可以看到您在这方面是否/哪里出了问题?我是一个jquery程序员初学者,不能使用JSFIDLE。从我的试验中可以看出,当我尝试在div标记中显示值(用于术语名称和描述)时,效果非常好<代码>代码$(document).ready(函数(){$('#submit')。单击(函数(){alert(document.getElementById(“term”).innerHTML);})<但是,正如我猜想的那样,在jquery$(“#term”).text()中调用它们似乎不起作用,因为jquery函数在页面加载时加载的term和definiton值为空。谢谢你的帮助。使用JQuery,您将获得很多乐趣。