2009-08-14 8 views
3

Ich benutze jqGrid und füge mein eigenes onclick -Ereignis zu jeder Zelle von Daten hinzu, wenn das Gitter fertig gerendert ist.jQuery aktuelles Klickereignis für Element erhalten und daran angehängt

jqGrid verfügt standardmäßig über das Verhalten zum Hervorheben einer Zeile onclick. Wenn ich nach dem Rendern des Gitters ein eigenes onclick-Ereignis hinzufüge, überschreibt mein Ereignis das jqGrid-Ereignis erwartungsgemäß. Ich möchte das jqGrid onclick -Ereignis beibehalten und nur mein Ereignis hinzufügen.

Wie kann ich das aktuelle onclick-Ereignis für alle Elemente erhalten, die einer bestimmten Klasse entsprechen, und einfach weitere Aktionen an das Ereignis anhängen? Dies ist meine aktuelle neue onclick-Veranstaltung.

Danke!

$(".searchOrders").click(function() { 
    $('#tabs').tabs('url', 2, '/view/dspOrders.cfm?id_orders='+$(this).attr('title')); 
    $('#tabs').tabs('select', 2); 
}); 

Antwort

3

Der jQuery Ereignis Bindungsmechanismus ist nicht eine, die überschreibt. Mit anderen Worten:

$("#button").click(function() { alert("hello"); }); 
$("#button").click(function() { alert("goodbye"); }); 

hat zwei Ereignisse auf #button gefeuert, die zweite überschreibt nicht die erste.

Hier läuft noch etwas anderes.

+0

Oh Junge, duh! Die anderen onclick-Ereignisse befinden sich in der Tabellenzelle und meine neuen Ereignisse befinden sich auf dem Anker innerhalb der Zelle. Habe das jetzt gerade bemerkt. – mattmac

0

Sie einen Code anpassen kann ich ein Ladeereignis einfügen verwenden, um:

// stack the original loads 
var aryLoadQueue = new Array(); 
$.each($.data($main.get(0), "events").load, function() { 
    aryLoadQueue.push(this); 
}); 

... 

// put the original loads back in place to take place after our one-time load 
$(aryLoadQueue).each(function() { 
    $main.load(this); 
}); 

fühlen sich frei, sich mit Fragen zu äußern ...

Verwandte Themen