2009-06-03 7 views
2

Ich versuche, die folgendes zu tun:jQuery benutzerdefinierte Klick

$("#something ."+id).click(function() { 
    callFunction(id,message); 
});  

$("#something ."+id).silentclick(function() { 
    callFunction(id,message,'silent'); 
}); 

Aber Silent gibt eine Fehlermeldung, Funktion existiert nicht. Wie gehe ich vor, um eigene benutzerdefinierte Ereignisse wie Silentclick zu erstellen?

Vielen Dank für Ihre Zeit.

+0

Was genau sollen Sie tun? Mit der "click" -Eigenschaft können Sie einen Funktionsaufruf setzen, wenn der Benutzer auf ein Element klickt. Ist das nicht genug? – Ivar

Antwort

3

Ich denke, Sie versuchen, ein benutzerdefiniertes Ereignis zu erstellen. Wenn dies der Fall ist, können Sie entweder .bind() oder .live() verwenden.

$("#something ."+id).bind('silentclick',function() {  
    callFunction(id,message,'silent'); 
}); 

Dann könnten Sie das Ereignis von woanders in Ihrem Code feuern.

$("#something ."+id).trigger('silentclick'); 
+0

Verdammt, Sie schlugen mich um 30 Sekunden :( –

3

Sie erweitern jQuery wie folgt aus:

(function($){ 
    $.fn.silentclick = function(action) { 
     /* do what you like with the function passed */ 
     action(); /* for example invoke the function */ 
    } 
})(jQuery); 

Ohne zu wissen, was will oder Silent tun, wie Sie wollen, dass es ausgelöst wird, kann ich nicht wirklich näher geben.