0

この問題について何か助けていただければ幸いです。これが私がこれまでに持っているコードです:

    $('.Ajax_links').click(function() {
  window.location.hash = $(this).attr("href");
  var href = $(this).attr('href');  
  $('#contaniner_div').load(href);

  $('data-target').click(function() {
  var data-target = $(this).attr('data-target');
  $('#contaniner_Div_Nav').load(this.data-target);
  }

 return false;
});

(class="Ajax_links") に設定されたクラスのリンクがクリックされたときに、上記の混乱したコードが以下の 2 つの div にコンテンツをロードすることを望みます。

<div id="contaniner_Div"></div>
<div id="contaniner_Div_Nav"></div>

これは、リンクがどのように見えるかです:

<a href="files/content.html" class="Ajax_links" data-target="files/navigation.html">

data-target メソッドの代わりに rel を使用して作業していた最初のメソッドは、リンクがクリックされたときにコンテンツをこれら 2 つの div にロードしましたが、そのコンテンツの rel 部分はハッシュに含まれていませんでした。リンクの rel 部分をブックマークしたり、ブラウザのボタンを使用して前後に移動したりすることができなくなります。(私はベンアルマンプラグインを使用しています)。そのため、別の方法を探していますが、コードが機能しません。誰か助けてくれませんか?

4

2 に答える 2

1

David Thomas が指摘しているように、あなたも認めているようですが$(this)、コード内の はドキュメント オブジェクトの jQuery ラッパーです。そのオブジェクトにはrel属性がなく$(this).attr("rel")、値もそうですundefined。JavaScript ではundefined != ""、式が true と評価され、別の未定義の値に設定window.location.hashされます: 。のような URL が表示されるのはそのためです。$(this).attr("href")domain/#undefined

また、HTML アンカー タグrel属性を誤用していることにも注意してください。

この属性は、現在のドキュメントから href 属性で指定されたアンカーまでの関係を記述します。この属性の値は、スペースで区切られたリンク タイプのリストです。

これは、有効なリンク タイプのリストですdata-属性を使用して、HTML 要素に関するメタデータの任意のビットを保存することで、より適切なサービスを提供できます。

于 2012-07-08T03:32:36.837 に答える
1

戻るボタンと履歴をサポートするプラグインが必要になると思います。これは一般的に非常に優れていると考えられています。

http://benalman.com/projects/jquery-bbq-plugin/

于 2012-07-07T17:38:39.837 に答える