一般的なアクションのグローバル クリック ハンドラーを作成し、タグ自体にリクエストのデータを含めるだけです。例えば、
<a class="loadcontent" href="/page1.html", data-target="#content">Page 1</a>
<a class="loadcontent" href="/page2.html", data-target="#content">Page 2</a>
<a class="loadcontent" href="/page3.html", data-target="#content">Page 3</a>
... somewhere else...
<a class="loadcontent" href="/foo/bar/somepage.html", data-target="#sub-content">Some other page</a>
1 つのイベントを使用してそれらすべてを処理できるようになりました。
$(document).on("click","a.loadcontent",function(e){
e.preventDefault();
$( $(this).data("target") ).load(this.href + " " + $(this).data("target"));
});
同じ方法でより高度なアクションを使用して同様の統合を行うことができるため、アプリケーションのさまざまな領域で同じイベント ハンドラーを再利用できます。
<a href="/delete.php" data-entity-type="Person" data-entity-id="7363" class="delete">Delete Person</a>
と
$(document).on("click","a.delete",function(e){
e.preventDefault();
if (confirm("Are you sure you wish to delete this record?") == false) return;
var $this = $(this), $data = $this.data();
$.post(this.href,{entityType: $data.entityType, entityId: $data.entityId},"json")
.done(function(data){
if (data.result == "success") {
$this.closest($data.parentSelector).remove();
}
});
});