jQuery:どのようにパスイベントのメタデータのHTML要素を維持しつつXHTMLの有効?

StackOverflow https://stackoverflow.com/questions/3137235

  •  01-10-2019
  •  | 
  •  

質問

かくいくことで、このジレンマを一または別:

私はブロックレベルのHTML要素を含む複数のブロックレベルおよびインラインレベル要素,例.

<div id="ajax">
   <h2>Something</h2>
   <div class="icon"></div>
   <div class="clear"></div>
   <div class="somethingelse"><h3>blah</h3></div>
</div>

私は単に装着したい場合は、jQueryのajax()イベントをクリックでのネットワークに接続しているajax(トップレベルの素子が通過しなければならな数のパラメータをサーバサイドスクリプト

この方見かけは単に交換 div#ajaxa#ajax, を行なっていようなもの href="param=value&this=that", だが、ここのページを無効に:ができない他のブロックレベル要素(<div> 内のインライン要素<a>).

であることが可を追加する rel 属性 div#ajax, は、怠XHTMLのバリデーションを実施します。

たくない行の追加のインライン onclick イベントdivs、ちょっと遠い出---また、すべての子どもの div#ajax 入例 <span> 大きなピ.

はどのように取り扱っています。

よろしく!

役に立ちましたか?

解決

する方法は幾つかあるが、今回はとってこれを維持しつつXHTMLの有効性、または少なくとも残存のマスコットキャラクターすべてのブラウザ:

最初のオプションのパラメータを直接JavaScriptのどこかに、この最もシンプル.


第二に、できない場合はこのスクリプトを使用できるアンカーが 内部, な包装です:

<div id="ajax">
   <h2>Something</h2>
   <div class="icon"></div>
   <div class="clear"></div>
   <div class="somethingelse"><h3>blah</h3></div>
   <a class="params" href="page.htm?param=value&this=that"></a>
</div>

CSS隠す:

.params { display: none; }

やjQueryを利用する

$("#ajax").click(function() {
   $.ajax({
     url: $(this).find(".params").attr("href");
     success: function() {
       //do something
     }
   });
});

第三に、利用 HTML5データ属性, この休みの厳しいXHTMLの有効性が未来をうかが原因からかもしれませんが現在のブラウザを推奨いたします。


最後のオプションとして私が考えられることはい)を使用 jQueryのメタデータのプラグイン または保存のと考えている。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top