JQuery Hover代码:添加一个If语句会破坏它

时间:2012-07-02 16:17:51

标签: javascript jquery css class if-statement

我有这个代码,它使信息框跟随鼠标。它非常简单,只需检查您悬停在div中的自定义属性“description”并将其放入框中。但是,我想这样做,如果该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();
});

});

这就是我现在的代码。我页面中没有任何一个悬停工作。这是有效的代码。除了没有声明之外,它在各方面都是相同的。

$(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语句就会破坏整个事情。我完全不知道如何继续或如何解决它。

2 个答案:

答案 0 :(得分:3)

罪魁祸首..

 if ("div")

也许你在尝试

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

答案 1 :(得分:2)

if ("div").hasclass("item") {

应该是:

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

还有一些你还可以测试:

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

了解jQuery .is()