0
我建設用以下代碼網頁:jQuery的使用Javascript - 如果語句不正確評估
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
聲明。
'change.call(this)'不會期望函數明確地接收'this'。我錯誤地在看到OP的代碼之前發佈了一個答案 –
@RajaprabhuAravindasamy嗯,我已經做出了改變。我想知道爲什麼你刪除了你的。 – gurvinder372
@ gurvinder372我只是嘗試你的解決方案,但仍然將所有類添加到我點擊的任何按鈕。 –