2009-03-11 21 views
0

Ich habe einige JavaScript-Code, der folgende konvertieren einige JavaScript JQuery

link.NavigateUrl = string.Format("javascript:MyFunction({0}, {1});", ID1, ID2); 
Das Gleiche gilt, wenn der Link MyFunction und die dynamischen Parameter aufgerufen wird, ist klicken, wird in übergeben werden.

Wie kann ich in diesen params passieren mit JQery wie:

 
$(function(){ 
    $('#MyLinksID').click(function(){ 
     console.log('Want to have access the two params here');
});

Also wie kann ich die Parameter von innerhalb meiner Click-Ereignis zugreifen?

Antwort

0

Wenn Sie versuchen, MyFunction aufrufen zu lassen und Zugriff auf die Parameter innerhalb des JQuery-Klickereignisses zu erhalten, besteht die einfachste Möglichkeit darin, die href des Links zu analysieren.

So etwas wie dies funktionieren soll (in Ihrem jQuery click-Ereignisse):

var href = this.href; 
var startPos = href.indexOf("(") + 1; 
var endPos = href.indexOf(")"); 

var parms = href.substr(startPos, endPos - startPos).split(","); 
3

Sie benötigen eine 'Schließung' zu verwenden, ein zentrales Konzept in Javascript.

Kurz gesagt, eine Funktion hat Zugriff auf Variablen in dem Bereich, in dem sie erstellt wurde.

$(function(){ 
    var ID1 = 'foo'; 
    var ID2 = 'bar'; 
    $('#MyLinksID').click(function(){ 
     console.log(ID1+ID2); 
    } 
}); 

Die ID1 und ID2 Variablen sind im gleichen Umfang, die Callback-Funktion in erstellt wird, so kann es sie noch zugreifen, wenn es später genannt wird.

0

Das Problem ist, dass click -Ereignis für #MyLinksID, die Sie beziehen, keine Verbindung zur NavigateUrl -Eigenschaft haben. Sie müssen Ihre Frage klären, da zwei Männer 2 mögliche Antworten beantwortet haben.

Verwandte Themen