JQuery 悬停代码:添加 If 语句会破坏它

JQuery Hover Code: Adding an If Statement breaks it

本文关键字:语句 If 悬停 代码 添加 JQuery      更新时间:2023-09-26

我有这段代码,可以让一个包含信息的框跟随鼠标。这真的很简单,只需检查您悬停在div 上的自定义属性"描述"并将其放入框中即可。但是,我想让它成为这样,如果该div 也有某个 CSS 类,那么除了其他代码仍然有效之外,它还会将其他信息放在框中。

$(document).ready(function(){
$(".hover").mousemove(function(e){
    if ("div").hasclass("item"){
        alert("div hasclass item");
    } else {
        var description = $(this).attr("description");
        $("#hoverdiv").text(description).show();
        $("#hoverdiv").css("top", e.clientY+10).css("left", e.clientX+5);
    }
}).mouseout(function(){
    $("#hoverdiv").hide();
});

});

这就是我现在的代码。我的页面中的任何悬停都不起作用。这是有效的代码。它在各个方面都是相同的,除了没有 if 语句。

$(document).ready(function(){
$(".hover").mousemove(function(e){
    var description = $(this).attr("description");
    $("#hoverdiv").text(description).show();
    $("#hoverdiv").css("top", e.clientY+10).css("left", e.clientX+5);
}).mouseout(function(){
    $("#hoverdiv").hide();
});

});

我一次又一次地尝试让它工作,通过我的测试,似乎简单地添加一个 if 语句会破坏整个事情。我完全不知道如何进行或如何解决它。

culrpit..

 if ("div")

也许你正在尝试

if($("div").something()){
}
if ("div").hasclass("item") {

应该是:

if ( $("div").hasClass("item") ) {

对于更多内容,您还可以测试:

if ( $("div").is(".item") ) {

阅读有关 jQuery .is() 的信息