2013-08-01 39 views
5

Tôi đang cố gắng tìm hiểu các sự kiện tùy chỉnh jquery.Sự kiện tùy chỉnh đơn giản trong jquery

Tôi cần kích hoạt sự kiện đơn giản khi tải trang.

HTML:

<div id="mydiv"> my div</div> 

tôi cần phải gọi sự kiện của riêng tôi để bắn một cảnh báo

$("#mydiv").custom(); 

tôi đã cố gắng vào mã bên dưới.

function customfun() 
    { 
     $("#mydiv").trigger("custom"); 
    } 

    $(document).ready(function() { 

     $("#mydiv").bind(customfun, function() { 
      alert('Banana!!!'); 
     }); 

    }); 
+0

bind() hy vọng tham số 1 là chuỗi hoặc đối tượng chứ không phải hàm. – Virus721

Trả lời

2

Để gọi sự kiện tùy chỉnh như các chức năng jquery bạn cần, tốt, định nghĩa một hàm như vậy qua $.fn:

$(document).ready(function() { 
    //define the event 
    $(document).on('custom', function() { 
     alert('Custom event!'); 
    }); 

    //define the function to trigger the event (notice "the jquery way" of returning "this" to support chaining) 
    $.fn.custom = function(){ 
     this.trigger("custom"); 
     return this; 
    }; 

    //trigger the event when clicked on the div 
    $("#mydiv").on("click", function() { 
     $(this).custom(); 
    }); 
}); 
4

Bạn cần phải liên kết với cùng tên sự kiện - "tùy chỉnh" - là tên sự kiện bạn đã kích hoạt. Như thế này:

$("#mydiv").on("custom", function() { ... 

Fiddle

+2

'.on()' là tiếp theo '.bind()' .. :) :) – bipen

+0

Cảm ơn câu trả lời. tôi đã thấy trong một số mẫu mã, mọi người sử dụng $ ("# mydiv"). customevent(); khác với builtevnts ..etc. vậy làm thế nào tôi có thể gọi loại sự kiện đó? – chamara

0

bạn có thể gọi nó bằng cách làm như vậy:

$.fn.mycustom = function(){ 
    return this; 
}; 

$("div").mycustom(); 
Các vấn đề liên quan