簡體   English   中英

jQuery切換添加類

[英]Jquery toggle add classes

我有一個jQuery函數,第一部分工作,但是具有相同邏輯的第二部分卻沒有。 在下半年,我希望再次切換類。 如果您需要更多代碼,請告訴我。 jQuery的新手。 謝謝

<script>
</div>
<button class="button GBP" id="conv_currency">Change to £GBP</button>
</div>

    $(".GBP").click(function(){
    if (document.getElementById("conv_currency").className == "button GBP") {
        document.getElementById("conv_currency").innerHTML = "Change to $USD";
        $(".GBP").removeClass("GBP").addClass("USD");
    }
    });

$(".USD").click(function(){
   if(document.getElementById("conv_currency").className == "button USD") {
        document.getElementById("conv_currency").innerHTML = "Change to £GBP";
       $(".USD").removeClass("USD").addClass("GBP");
    }
});
</script>

 $(document).on('click',".GBP",function(){ if (document.getElementById("conv_currency").className == "button GBP") { document.getElementById("conv_currency").innerHTML = "Change to $USD"; $(".GBP").removeClass("GBP").addClass("USD"); } }); $(document).on('click',".USD",function(){ if(document.getElementById("conv_currency").className == "button USD") { document.getElementById("conv_currency").innerHTML = "Change to £GBP"; $(".USD").removeClass("USD").addClass("GBP"); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> </div> <button class="button GBP" id="conv_currency">Change to £GBP</button> </div> 

  1. 將事件委派用於jquery使用.on()

只需嘗試使用toggleClassConditional (ternary) Operator

 $(".button").click(function() { $(this).html($(this).hasClass("GBP") ? "Change to $USD" : "Change to £GBP").toggleClass("USD GBP") console.log($(this).attr('class')) }); 
 .USD {color: red;} .GBP {color: green;} 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button class="button GBP" id="conv_currency">Change to £GBP</button> 

檢查以下行:

$(".GBP").removeClass("GBP").addClass("USD");

這樣,您就可以動態更改類,因此要使用.on()來處理動態類,例如:

$(document).on('click',".GBP",function(){

注意: $(document).on()適用於動態html。

 $(".button").click(function(){ if($(this).hasClass("USD")){ $(this).text("Change to £GBP").removeClass('USD').addClass("GBP"); }else if($(this).hasClass("GBP")){ $(this).text("Change to $USD").removeClass('GBP').addClass("USD"); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> </div> <button class="button GBP" id="conv_currency">Change to £GBP</button> </div> 

檢查當前班級並更改文本和班級名稱

盡管已經提供了解決方案,但是您也可以嘗試定位button類而不是GBPUSD

 $(".button").click(function() { if ($(this).hasClass('GBP')) { $(this).removeClass('GBP').addClass('USD').text('Change to £USD') } else if ($(this).hasClass('USD')) { $(this).removeClass('USD').addClass('GBP').text('Change to $GBP') } }) 
 .GBP { color: red; } .USD { color: green; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> </div> <button class="button GBP" id="conv_currency">Change to £GBP</button> </div> 

    $(document).on('click',".button",function(){
            $(this).toggleClass("GBP").toggleClass("USD");
            if($(this).text() == "Change to £GBP"){
                $(this).text("Change to USD");
            }
            else{
                $(this).text("Change to £GBP");
            }
        });

// OR you can also this

$(document).on('click',".button",function(){
        $(this).toggleClass("GBP").toggleClass("USD");
        if($(this).hasClass("USD")){
            $(this).text("Change to USD");
        }
        else{
            $(this).text("Change to £GBP");
        }
    });

//choices is yours

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM