2016-05-30 161 views
0

我已經有一個jQuery .on()函數,其中點擊事件是在按鈕上傳遞的。jQuery想重載按鈕點擊功能

我想從點擊按鈕超過1限制用戶,但我不想改變當前的功能,而不是編寫新功能

$('button').on('click', function() { 
 
    alert('hi'); 
 
}); 
 

 
$('button').click(function(event) { 
 
    var count = 0; 
 
    count = count + 1; 
 
    if (count > 1) { 
 
     event.preventDefault(); 
 
     console.log('dont call alert'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<button>Click Me !</button>

+0

您可以使用jQuery。一():http://api.jquery.com/one/ –

+0

我已經寫在另一個文件中的。對()函數,我不有權訪問該文件...所以想覆蓋它 – Jay

回答

0

jQuery off()方法刪除元素的事件處理程序。點擊按鈕時,您可以刪除click事件。使用這項工作,按鈕點擊事件只會觸發一次。

$("button").click(function(event){ 
 
    alert(); 
 
    $(this).off("click"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button>Button</button>

0

您可以使用jQuery .one()方法:

$('button').one('click', function() { 
 
    alert('hi'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<button>Click Me !</button>

+0

我已經有一個.on()函數寫在另一個文件中,我沒有訪問該文件...所以想重寫它 – Jay

1

我認爲你正在尋找的東西像下面。

$('button').on('click', function() { 
 
    alert('hi'); 
 
}); 
 

 

 
var isCliked = true; 
 
$('button').click(function() { 
 
    $('button').off('click'); 
 

 
    isCliked && $('button').click(function() { 
 
     console.log('dont call alert'); 
 
     isCliked = false; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button> 
 
    Click Me ! 
 
</button>