Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
jquery在mouseover事件上接收空值(来自div标记)_Jquery_Html_Onmouseover - Fatal编程技术网

jquery在mouseover事件上接收空值(来自div标记)

jquery在mouseover事件上接收空值(来自div标记),jquery,html,onmouseover,Jquery,Html,Onmouseover,我试图使用pnoty jquery库来实现我自己的目的。当用户将鼠标悬停在一个术语上时,我将从xml文件中检索术语名称和描述,并在工具提示中显示它们。我能够成功地检索术语数据,但在将它们传输到jquery函数时遇到问题(我在jquery中总是得到空值)。我认为jquery是在加载页面时加载的,因此,将字段设置为空 正如您在下面的a href代码中所看到的,我有自己的函数DisplayAlert,它可以完美地工作,并将术语相关值加载到术语名称和定义div标记中 <a href="#" onm

我试图使用pnoty jquery库来实现我自己的目的。当用户将鼠标悬停在一个术语上时,我将从xml文件中检索术语名称和描述,并在工具提示中显示它们。我能够成功地检索术语数据,但在将它们传输到jquery函数时遇到问题(我在jquery中总是得到空值)。我认为jquery是在加载页面时加载的,因此,将字段设置为空

正如您在下面的a href代码中所看到的,我有自己的函数DisplayAlert,它可以完美地工作,并将术语相关值加载到术语名称和定义div标记中

<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,您将获得很多乐趣。