簡體   English   中英

如何使用jQuery切換JavaScript功能

[英]How to toggle javascript functions using jquery

我有兩個JavaScript函數

 function A(){ 
   alert("A() function is called");
 }

function B(){
    alert("B() function is called");
 }

 $("#button").click(function(){
 // I need to toggle A() and B() here
 });

我如何實現這一目標,請問有人可以幫忙嗎?

為此,您可以存儲一個標志,該標志存儲元素的狀態,從而存儲要調用的函數。 這是一個使用類的示例:

$("#button").click(function(){
    var $el = $(this).toggleClass('foo');
    $el.hasClass('foo') ? A() : B();
});

您可以在每次連續的單擊上綁定/解除綁定事件處理程序,但這很快變得笨拙並且難以維護。

為了完整起見,下面是一個使用data屬性的示例:

$("#button").click(function(){
    var $el = $(this).data('foo', !$(this).data('foo'));
    $el.data('foo') ? A() : B();
});

您可以更改綁定

function A(){ 
   alert("A() function is called");
   $("#button").off("click", A).on("click", B);
 }

function B(){
   alert("A() function is called");
   $("#button").off("click", B).on("click", A);
 }

 $("#button").on("click", A);

您可以使用布爾變量(true)並在調用第一個函數后將其設置為false。 然后,如果為false,則調用第二個變量,並再次設置布爾變量(為true)。

使用.data()在元素本身上設置一個變量,該變量告訴您​​要調用的函數。

 function A() { alert("A() function is called"); } function B() { alert("B() function is called"); } $("#button").click(function() { if ($(this).data('AorB') == 'B') { B(); $(this).data('AorB', 'A'); } else { A(); $(this).data('AorB', 'B'); }; }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="button">click me</button> 

您可以通過將類應用於按鈕並根據類來編寫

現場演示

 <input type="button" class="callA" value="click me" id="button" />

 $("#button").click(function(){

   if($(this).hasClass('callA')){
           A();
    }
   else
    {
          B();
    }
 });

暫無
暫無

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

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