jQuery 类名无效
jQuery className don't work
在这两个示例中,第一个有效,第二个无效。
在第二个例子中,我 bind dragover 和 dragleave 事件到 img 而不是 div 但我想将 className 更改为 div。
正确检测到事件并且没有引发错误,但 div 不会更改其 class.
问题出在哪里?
//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;
});
});
#framedrag
{
color: #555;
border: 2px dashed #555;
border-radius: 7px;
cursor: default;
}
#framedrag.hover
{
color: #3fc600;
border-color: #3fc600;
border-style: solid;
}
<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>
试试这个 $("#framedrag").attr("class", e.type == "dragover" ? "hover" : "");
在这两个示例中,第一个有效,第二个无效。
在第二个例子中,我 bind dragover 和 dragleave 事件到 img 而不是 div 但我想将 className 更改为 div。 正确检测到事件并且没有引发错误,但 div 不会更改其 class.
问题出在哪里?
//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;
});
});
#framedrag
{
color: #555;
border: 2px dashed #555;
border-radius: 7px;
cursor: default;
}
#framedrag.hover
{
color: #3fc600;
border-color: #3fc600;
border-style: solid;
}
<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>
试试这个 $("#framedrag").attr("class", e.type == "dragover" ? "hover" : "");