$(document).ready(function(){
$('#vDets').on('mouseover',function(){
$('#vDets').removeClass("SelectDef").addClass("SelectHov");
});
$('#vDets').on('mouseout',function(){
$('#vDets').removeClass("SelectHov").addClass("SelectDef");
});
$("#vDets").on('click',function(){
$('#vDets').removeClass("SelectDef").addClass("SelectTick");
var boolCheck = $("#vDets").hasClass("SelectDef");
});
});
我遇到上面的代码有问题,hasClass不在onclick函数内部但是会抛出错误
未捕获的TypeError:$(...)。hasClass不是函数
在内部使用时,尽管函数removeClass和addClass都可以工作。
我以前多次使用过hasClass,从未遇到过这个问题
答案 0 :(得分:0)
嗯,我刚试过它,一切似乎都很好 jsfiddle - click.
JS:
$(document).ready(function(){
$('#vDets').on('mouseover',function(){
$('#vDets').removeClass("SelectDef").addClass("SelectHov");
});
$('#vDets').on('mouseout',function(){
$('#vDets').removeClass("SelectHov").addClass("SelectDef");
});
$("#vDets").on('click',function(){
$('#vDets').removeClass("SelectDef").addClass("SelectTick");
//those run after click
var boolCheck1 = $("#vDets").hasClass("SelectDef");
var boolCheck2 = $("#vDets").hasClass("SelectHov");
$('#result1').text( boolCheck1 );
$('#result2').text( boolCheck2 );
});
//run outside function without click
$('#result1').text( $("#vDets").hasClass("SelectDef") );
$('#result2').text( $("#vDets").hasClass("SelectHov") );
});
HTML:
<div id="vDets" class="SelectDef">
click me
</div>
result for SelectDef:
<div id="result1">
</div>
result for SelectHov:
<div id="result2">
</div>
您是否尝试使用boolCheck
外部功能?它在外面是不可用的:)
$("#vDets").on('click',function(){
$('#vDets').removeClass("SelectDef").addClass("SelectTick");
因为当你想点击它时会SelectHov
:
$('#vDets').on('mouseover',function(){
$('#vDets').removeClass("SelectDef").addClass("SelectHov");
});