2013-08-01 16 views
5

Ich versuche, jquery benutzerdefinierte Ereignisse zu lernen.Einfache benutzerdefinierte Ereignis in jquery

Ich muss ein einfaches Ereignis beim Laden der Seite auslösen.

HTML:

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

Ich brauche mein eigenes Event rufen Sie eine Benachrichtigung an Feuer

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

Ich habe versucht, den Code unten.

+0

bind() erwartet, dass Parameter 1 eine Zeichenfolge oder ein Objekt ist, keine Funktion. – Virus721

Antwort

2

Um benutzerdefinierte Ereignisse wie jQuery-Funktionen aufrufen Sie brauchen, na ja, definieren eine solche Funktion über $.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

Sie müssen an den gleichen Ereignisnamen binden - "custom" - als den, den Sie ausgelöst haben. Wie folgt aus:

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

Fiddle

+2

'.on()' ist das nächste '.bind()' .. :) :) – bipen

+0

Danke für die Antwort. Ich habe in einigen Codebeispielen gesehen, Leute verwenden $ ("# mydiv"). customevent(); anders als die eingebauten Clickevents..etc. Wie kann ich diese Art von Veranstaltung nennen? – chamara

0

Sie können es aufrufen, indem Sie so vorgehen:

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

$("div").mycustom();