2008-11-25 45 views
5

Tôi hiện đang làm việc trên một plugin jQuery và tôi tự hỏi liệu nó có thể có plugin lắng nghe các sự kiện thay vì được kích hoạt bởi các sự kiện hay không.jQuery Plugin: Xử lý sự kiện

Vì vậy, thay vì điều này:

$('#element_id').mouseover(function() { 
    $(this).plugin(); 
}); 

$('#element_id').mouseout(function() { 
    $(this).pluginHide(); 
}); 

Tôi muốn cố gắng làm một cái gì đó như thế này:

$('#element_id').plugin(????, ????); 

Và thay thế 's với một số loại tài liệu tham khảo để các yếu tố và sự kiện nên kích hoạt nó để hiển thị hoặc ẩn. Tôi vẫn nhận được đôi chân của tôi ướt với jQuery, vì vậy chịu với tôi nếu một giải pháp này là đau đớn rõ ràng.

Trả lời

8

Sau khi thử nghiệm một chút, có vẻ như tôi đang tìm kiếm hàm "bind()" được tích hợp sẵn. Để giải quyết vấn đề ban đầu của tôi:

jQuery.fn.plugin = function(show, hide) { 
    this.bind(show, function() { 
     // Do something to show. 
    }; 

    this.bind(hide, function() { 
     // Do something to hide. 
    }; 
}; 
+6

Không sử dụng '$ (this)'. Sử dụng 'this' – Aliostad

Các vấn đề liên quan