jquery按鈕綁定特殊事件

來源:互聯網
上載者:User

標籤:bin   app   就會   null   span   event   asc   知識   http   

本文主要介紹點擊一個按鈕處理事件的一些特殊情況和技巧。

一、第一次點擊觸發一個函數,之後點擊都觸發另一個函數1、小白實現

2、大神實現

代碼如下:

<body><button>click me</button>    <script>    function bind(func1, func2) {        let func = null        return function() {            (!func ? (func = func2, func1) : func).apply(this, arguments)        }    }    $(‘button‘).click(bind(()=>{alert(1)}, ()=>{alert(2)}));    </script></body>

說明2點:

1、let定義的變數是塊級的變數。

while(1){    let let1 = 2;    var var1 = 2;}alert(let1);  //不可訪問alert(var1);  //可以訪問

2、(func = func2, func1)

javascript 逗號運算式,從左至右執行每個子運算式,並將最後一個子運算式的值作為整個運算式的值。=優先順序高於,(點擊瞭解更多)。所以這個運算式先將func2賦給func,然後整個運算式的值取func1。

二、 點擊按鈕只調用一次事件處理1、實現

同樣也可以通過判斷全域變數flag為是否為true來處理。

這裡介紹一個jquery的one方法。

$("button").one("click", function() {    alert("This will be displayed only once.");});

瞭解更多可參考:http://www.jquery123.com/one/

原理就是當第一次觸發以後,我們就立即刪除該控制代碼。

// 注意:前提是我們已經定於好了addEvent/removeEvent函數// (定義好了才能使用哦)  var myIntro = document.getElementById(‘intro‘);addEvent(myIntro, ‘click‘, oneClickOnly);function oneClickOnly() {    alert(‘WOW!‘);    removeEvent(myIntro, ‘click‘, oneClickOnly);} 
2、實際應用

情境:工作中有遇到這種情況,如下,點“系統訊息”代表全部系統訊息都讀了。

之前做的就是click時調用readMsg(),事實上這樣每點擊一次就會觸發請求一次介面,可以通過只點擊一次來最佳化頁面效能。

   //在點擊系統訊息tab的時候置為已讀   $("li[data-href=‘tabs02‘] h2").one("click", function() {      readMsg("sys", "all");    }); 

 

 

本文作者starof,因知識本身在變化,作者也在不斷學習成長,文章內容也不定時更新,為避免誤導讀者,方便追根溯源,請諸位轉載註明出處:http://www.cnblogs.com/starof/p/4904929.html有問題歡迎與我討論,共同進步。

jquery按鈕綁定特殊事件

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.