jQuery className不起作用

时间:2017-08-01 23:08:33

标签: javascript jquery classname

在这两个例子中,第一个是第二个工作。

在第二个示例中,绑定 dragover 拖放事件到 img 而不是 div < / strong>但我想更改 div className 。 正确检测到事件并且未引发错误,但 div 不会更改其类。

问题出在哪里?

&#13;
&#13;
//This work

$(document).ready( function() {
    $("#framedrag").bind("dragover dragleave", function(e) {
        e.stopPropagation();
        e.preventDefault();
        e.target.className = (e.type == "dragover" ? "hover" : "");
        return false;
    });
});
   

//This don't work

$(document).ready( function() {
    $("#dragdrop").bind("dragover dragleave", function(e) {
        e.stopPropagation();
        e.preventDefault();
        $("#framedrag").className = (e.type == "dragover" ? "hover" : "");
        return false;
    });
});
&#13;
#framedrag
{
  	color: #555;
  	border: 2px dashed #555;
  	border-radius: 7px;
  	cursor: default;
}

#framedrag.hover
{
  	color: #3fc600;
  	border-color: #3fc600;
  	border-style: solid;
}
&#13;
<script     src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="preview-pane">
    <div id="framedrag">
        <div class="preview-container">
            <img id="dragdrop" src="images/upload-picture.png" class="jcrop-preview" />
        </div>
    </div>
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

试试这个$("#framedrag").attr("class", e.type == "dragover" ? "hover" : "");