我正在使用以下代码构建网页:
function change ()
{
if($(this).hasClass("rosaLC"));
{
$(this).toggleClass('rosaLCb');
}
if ($(this).hasClass('rosaBC'));
{
$(this).toggleClass('rosaBCb');
}
}
在html上,触发此功能的按钮如下:
<div class="row">
<article class="columnLeft">
<div class=rosa>
<button onclick="playVid('crux');change.call(this)" class=rosaLC style="top:28px; left:75px;" ></button>
<button onclick="playVid('gloria');change.call(this)" class=rosaBC style="top:460px; right:131px;"></button>
</div>
</article>
</div>
但是,当调用函数
change()
时,if语句无法正确求值,也就是说,当单击类rosaLC的<button>
时,函数change ()
会向其添加类rosaLCb和rosaBCb,以及原始类。 rosaLC类没有切换,按钮仍然具有3个类:<button onclick="playVid('crux');change.call(this)" class="rosaLC rosaLCb rosaBCb" style="top:20px; left:86px;"></button>
怎么了?
作为解决方法,我将该功能分为两个功能:
function change (thisObj)
{
$(thisObj).toggleClass('rosaLC rosaLCb');
}
function change1 (thisObj)
{
$(thisObj).toggleClass('rosaBC rosaBCb');
}
并更改html
button
:<button onclick="playVid('gloria');change1(this)" class=rosaBC style="top:36px; right:58px;"></button>
<button onclick="playVid('crux');change(this)" class=rosaLC style="top:28px; left:75px;" ></button>
这是我希望的唯一工作方式,但是我仍然不理解原始代码的主要问题,主要涉及
if
语句。 最佳答案
您没有定义使用它来切换的内容
只需这样做
function change ()
{
$(this).toggleClass('rosaLC rosaLCb');
$(this).toggleClass('rosaBC rosaBCb');
}
另外,传递元素对象而不是使用
this
,因为那样它就可以用于除按钮单击之外的目的(另一个元素上的其他事件)function change (thisObj)
{
$(thisObj).toggleClass('rosaLC rosaLCb');
$(thisObj).toggleClass('rosaBC rosaBCb');
}
并以
<button onclick="playVid('crux');change(this)" class=rosaLC style="top:28px; left:75px;" ></button>
关于javascript - jQuery\Javascript-如果语句评估不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35797180/