2009-08-05 13 views
1

Ich möchte in der Lage sein zu wissen, wenn jemand auf einen Link klickt und dann eine Var innerhalb der Link, die ich als ID zuweisen. Zum Beispiel einen Link wie folgt angegeben:JQuery - ref div und href ID in div

<a class="TrackClick" id="SomeUnknownVar" href="javascript:void(0)" onClick="window.open('http://someurl','','width=650,height=400,scrollbars=yes,left=150,top=100,screenX=150,screenY=100'); return false">do the deed</a> 

Ich war dieses klein bisschen JQuery Hoffnung, würde es für mich tun, aber es funktioniert nicht

$(document).ready(function() { 
    $(".TrackClick").click(function(){ 
     trackcode = this.id; 
     alert("trackcode"); 
    }); 

Aber das funktioniert nicht, irgendwelche Ideen ?

TIA!

+0

Haben Sie versucht, stattdessen $ (this) zu verwenden? – Sebastian

Antwort

2

Fügen Sie die URL zu href hinzu, und verwenden Sie dann den mit jQuery hinzugefügten Handler, um das neue Fenster zu öffnen. Wie es ist, glaube ich, dass der Handler, der in Markup angewendet wurde, den jQuery-Handler wegen der Rückgabe false kurzschließt. Alternativ können Sie einfach den Rückgabewert false entfernen und Ihren jQuery-angewandten Handler veranlassen, die Standardaktion (durch Zurückgeben von false) für den Link zu stoppen.

<a class="TrackClick" id="SomeUnknownVar" href="http://someurl">do the deed</a> 

jQuery-Code:

$(function() { 
     $('.TrackClick').click(function() { 
      var $this = $(this); 
      var href = $this.attr('href'); 
      window.open(href,'','width=650,height=400,scrollbars=yes,left=150,top=100,screenX=150,screenY=100'); 
      alert($this.attr('id')); 
      return false; 
     }); 
}); 
+0

Danke für den Beispielcode, ich werde es auf diese Weise versuchen !! – Chris

+0

Dies hat auch einen leichten Vorteil, dass, wenn Javascript nicht aktiviert ist, der Link immer noch funktioniert. – tvanfosson

+0

Tvanfosson, kann ich dir noch eine Frage stellen? Gibt es eine einfache Möglichkeit, dies sowohl auf Links, die ich in einem neuen Fenster öffnen möchte, als auch auf Links, die ich nicht öffne, anzuwenden? Wäre es das Beste, einfach eine andere Klasse zu verwenden, die nicht "window.open" verwendet? TIA !! – Chris

0

Es ist hier zu arbeiten, aber:

$(document).ready(function() { 
    $(".TrackClick").click(function(){  
      trackcode = this.id; 
      alert(trackcode); 
    }); 
}); 

Ich schloss nur das fehlende "});" in der letzten Zeile und machte die Warnung die tatsächliche Trackcode-Variable anstelle des Wortes "Trackcode".

+0

Wow, ich kann nicht glauben, dass es nur die Anführungszeichen waren. Das ist mein Start in Jquery, also wusste ich nicht. Ich denke, ich werde tvanfossons Lösung versuchen, aber es gibt keine Kurzschlussprobleme. Vielen Dank! – Chris