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>

ページ内で見つかったすべてのリンクを jQuery .load() で開きたい。
しかし、私のコードは機能していないようです。
何か案は?

4

2 に答える 2

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

contentこのコードにより、ユーザーがページに移動する代わりにページ上のリンクをクリックしたときに、そのページのコンテンツがdiv に読み込まれるようになります。e.preventDefault()リンクのデフォルトのアクション(ページを離れる)を防ぎ、ユーザーをページにとどめます。

さて、これに関する問題は、1つのリンクをクリックすると、divにロードされたコンテンツにはこのコードが適用されないことです。これを回避するには、jqueryでイベント委任を使用しますon(または古いjqueryバージョンでは委任します)。

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

このコードは、内#contentのすべてのリンク、最初にそこにあるリンク、および後でロードされるリンクで機能します。

于 2012-05-08T19:21:16.803 に答える
0
$(function () {
    $('a').each(function() {
      window.open($(this).attr('href') );
    });
});

clickは、実際には HTMLElement をクリックするアクションです。それぞれがそれらを通るループです。

そして、すべてをラップして、$();jQuery に指示します。

「ねえ、すべての準備が整うまで実行しないでください。すべての DOM 要素をアドレス指定できるようにしたいのです。」

$(document).ready [doc]の省略形です。

于 2012-04-06T01:20:22.593 に答える