首頁  >  問答  >  主體

javascript - Jquery click()事件的停用

$(document).ready(function(){
    $(".menua1").click(function(){
    //执行了点击事件的内容                    
            
    });
});
function toggleMenu(){
    var fs = window.top.document.getElementById("bframeset");
    if(条件true){
        $(".menua1_noclick").attr("class","menua1");
    }else{
        $(".menua1").attr("class","menua1_noclick");
    }
}
//HTML
<a class="menua1">A按钮</a>

當我點擊B按鈕呼叫了toggleMenu(),將該元素的class值改變,我覺得以前ready()裡面的click事件應該會失效,當我在呼叫toggleMenu()時把class的值換成初始值,click()應該可以正常運作;
但是不管這個a標籤的class值怎麼改變都不會影響到我原來的click,改變了class的值也依然能夠點擊進入執行jqeury程式碼,求解。

我的目的是:需要在點擊B按鈕後,將A按鈕原有的點擊事件停用,當再次點擊B按鈕在開啟A按鈕原有的點擊事件。

在線等待,請高手指教。

伊谢尔伦伊谢尔伦2663 天前1036

全部回覆(3)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-07-05 10:56:50

    當我點擊B按鈕調用了toggleMenu(),將該元素的class值改變,我覺得以前ready()裡面的click事件應該失效

    首先這句話, 這個理解就是錯的.

    舉個栗子:

    有一個人叫小明, 他爸媽管他叫小明明, 他老婆管他叫大明明, 有一天小明的手破了一個口,
    他爸/媽看到了問: 小明明你手怎麼弄破了?
    他老婆說: 大明明做飯的時候不小心切到了
    又回頭問小明: 大明明做菜的時候不小心切到了
    又爸問小明: 大明, 你的手還痛嗎?
    爸/媽說: 老公, 都這麼大的哎人了還叫大明明幹嘛? 多不好聽

    老婆說:

    好, 以後不叫了


    Question: 小明的手壞了沒有? jQuery的選擇器, 是為了透過不同的手段選擇到元素,

    但是你對它造成的

    shanghai

    , 不會因為你改變了它的某個屬性而消除.🎜 🎜所以回歸正題, 給元素綁定了點擊事件, 需要清除🎜
    1. 如果是js绑定:
    ele.onclick = function(){...}
    //要清除的话 , 用空方法覆盖
    ele.onclick = function(){}
    
    2. jQuery on方法绑定的点击事件
    //用off解除绑定
    $ele.on("click", function(){})
    $ele.off("click", function(){})
    
    3.或者在点击事件的回调中判断状态(全局变量/flag)
    var flag = true;
    $ele.on("click", function(){
      if(flag){
      ... 
      }
    });
    function toggle(){
      flag = !flag;
    }

    回覆
    0
  • PHP中文网

    PHP中文网2017-07-05 10:56:50

    樓上舉得列子也是有點意思,簡單來講,事件的綁定僅僅和元素的本身有關,跟他以後叫什麼名字沒太大關係。就好像說你的身分證代表了你這個人,然後有一天你換了名字,身分證是否就變成了代表別人?就是這個道理

    回覆
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:56:50

    $(".menua1").off('click'),把按鈕取消綁定click事件不就行了麼

    回覆
    0
  • 取消回覆