jQuery:どのようにパスイベントのメタデータのHTML要素を維持しつつXHTMLの有効?
-
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#ajax
と a#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のメタデータのプラグイン または保存のと考えている。