2012-04-06 7 views
0
<html> 
<head> 
<title></title> 
<script type="text/Javascript" src="includes/scripts/jquery-1.7.2.min.js"></script> 
<script type="text/Javascript"> 
$('a').click(function() { 
    window.open($(this).attr('href')); 
}); 
</script> 
</head> 
<body> 
<div id="content"> 
<a href="somepage.html">Somepage</a> 
<br /> 
<a href="somepage.html">Somepage</a> 
<br /> 
<a href="somepage.html">Somepage</a> 
<br /> 
<a href="somepage.html">Somepage</a> 
<br /> 
<a href="somepage.html">Somepage</a> 
</div> 
</body> 
</html> 

Ich möchte alle Links auf der Seite mit jQuery .load() öffnen.
Aber mein Code scheint nicht zu funktionieren.
Irgendwelche Ideen?Öffnen Sie alle Links mit jQuery .load

+1

Bitte posten Sie, was Sie bisher versucht haben. –

Antwort

0
$(function() { 
    $('a').each(function() { 
     window.open($(this).attr('href')); 
    }); 
}); 

click ist eigentlich die Aktion das Htmlelement zu klicken. each ist eine Schleife durch sie.

und Verpackung alles in $(); erzählt jQuery,

"Hey du mich nicht laufen, bis alles fertig ist. Ich möchte alle DOM adressierbarer Elemente."

Es ist kurze Hand für $(document).ready[doc].

+0

Hoppla, ich meinte 'code' $ ('content'). Load ($ (this) .sttr ('href')) ;. – user1316560

+0

Ich wünschte, jQuery war meine Hausaufgaben, als ich in der Schule war :( – Terry

+0

Das ist definitiv nicht meine Hausaufgaben. Nur ein Starter zu jQuery und versuchen, Code zu arbeiten. – user1316560

0
$('a').click(function(e) { 
    $("#content").load($(this).attr('href')); 
    e.preventDefault(); 
}); 

Dieser Code wird es so, dass, wenn ein Benutzer auf einen Link auf Ihrer Seite klickt, anstatt auf die Seite zu gehen, wird der Inhalt dieser Seite in Ihrem content div geladen werden. e.preventDefault() verhindert die Standardaktion des Links (Verlassen der Seite) und hält den Benutzer auf Ihrer Seite.

Jetzt ist das Problem damit, dass, wenn Sie auf einen Link geklickt haben, jeder Inhalt, der in das Div geladen wird, nicht diesen Code angewendet haben wird. Sie können dies umgehen, indem Sie die Ereignisdelegierung mit jquery on verwenden (oder in älteren jquery-Versionen delegieren).

$("#content").on("click", "a", function(e) { 
    $("#content").load($(this).attr('href')); 
    e.preventDefault(); 
}); 

Dieser Code wird, die dort zunächst als diejenigen später geladen und innerhalb #content auf alle Links funktionieren.

Verwandte Themen