trong phương pháp đề cập dưới đây Chúng tôi đang đi qua một loạt các chức năng để tùy chỉnh chức năng .toggleClick()
của chúng tôi. Và chúng tôi đang sử dụng thuộc tính data-*
của HTML5
để lưu trữ chỉ mục của hàm sẽ được thực hiện trong lần lặp tiếp theo của quá trình xử lý sự kiện nhấp chuột. Giá trị này, được lưu trữ trong thuộc tính data-index
, được cập nhật trong mỗi lần lặp để chúng ta có thể theo dõi chỉ mục của hàm được thực hiện trong lần lặp tiếp theo.
Tất cả các chức năng này sẽ được thực hiện từng cái một trong mỗi lần lặp lại sự kiện nhấp chuột. Ví dụ trong hàm lặp đầu tiên tại index[0]
sẽ được thực hiện, trong hàm lặp thứ hai được lưu trữ tại index[1]
sẽ được thực hiện và cứ như vậy.
Bạn chỉ có thể chuyển 2 hàm vào mảng này trong trường hợp của bạn. Nhưng phương pháp này không chỉ giới hạn ở 2 chức năng. Bạn có thể vượt qua các hàm 3, 4, 5 hoặc nhiều hơn trong mảng này và chúng sẽ được thực hiện mà không thực hiện bất kỳ thay đổi nào trong mã.
Ví dụ trong đoạn mã dưới đây đang xử lý bốn chức năng. Bạn có thể chuyển các chức năng theo nhu cầu của riêng bạn.
$.fn.toggleClick = function(funcArray) {
return this.click(function() {
var elem = $(this);
var index = elem.data('index') || 0;
funcArray[index]();
elem.data('index', (index + 1) % funcArray.length);
});
};
$('.btn').toggleClick([
function() {
alert('From Function 1');
}, function() {
alert('From Function 2');
}, function() {
alert('From Function 3');
}, function() {
alert('From Function 4');
}
]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button type="button" class="btn">Click Me</button>
<button type="button" class="btn">Click Me</button>
Nguồn
2016-09-08 14:54:09
Một điều tôi đã thay đổi là tôi đã thực hiện if (! Nhấp chuột) ... Điều này sau đó (trên báo nhấp chuột đầu tiên 'số lẻ', mà 1, nhấp chuột đầu tiên Điều này hoạt động tương tự như chuyển đổi() cũng như báo cáo 'if' được sử dụng làm nhấp chuột đầu tiên thay vì 'else'. –
cũng tốt ... bạn có thể sắp xếp mã của mình nó phù hợp với nhu cầu của bạn tốt hơn :) vui mừng tôi có thể giúp đỡ. – henser