2013-07-11 15 views
5

Vì phương thức sự kiện jQuery .toggle không được chấp nhận. Chúng ta giả sử gì để sử dụng để mô phỏng sự kiện này (các nhấp chuột thay thế)?Sự kiện jQuery .toggle không được chấp nhận, Sử dụng gì?

+0

Bạn có thể cung cấp mã ? – Dom

+0

Bản sao của http://stackoverflow.com/questions/2459153/alternative-to-jquerys-toggle-method-that-supports-eventdata –

+0

@jahroy Tôi không muốn một phương thức hoạt hình ... –

Trả lời

4

Thêm bên ngoài này của document.ready

$.fn.clicktoggle = function(a, b) { 
    return this.each(function() { 
     var clicked = false; 
     $(this).click(function() { 
      if (clicked) { 
       clicked = false; 
       return b.apply(this, arguments); 
      } 
      clicked = true; 
      return a.apply(this, arguments); 
     }); 
    }); 
}; 

sau đó sử dụng sau đây để sao chép các chức năng .toggle:

$("#mydiv").clicktoggle(functionA,functionB); 

Tìm thấy trên JQuery Forums

+0

Xin lỗi, nhưng chính xác thì đây là gì? Nó là một chức năng bạn đã viết? Tại sao $ .fn.clicktoggle và bạn gọi hàm này như thế nào? Cảm ơn bạn đã anwser của bạn! –

+0

Đoạn mã trên mở rộng đối tượng jQuery bằng cách thêm một phương thức mới. Bạn sẽ thêm mã đó vào trình xử lý "_on ready_" của mình. Sau đó, bạn có thể gọi 'clicktoggle()' như thể nó là một phương thức jQuery. Bạn có thể đọc về cách thêm một phương thức jQuery [ở đây] (http://stackoverflow.com/q/12093192/778118). – jahroy

+0

Rất tốt, cảm ơn bạn đã chỉnh sửa! –

0
var i = 0;  
$('button').click(function() { 
    if (i == 0){   
     $('div').css({background: 'red'}) 
     i++; 
    } else { 
     $('div').css({background: 'yellow'}) 
     i = 0; 
    } 
}); 
Các vấn đề liên quan