我正在使用ajax的應用程序的PHP工作。在所有我想要得到的jQuery劫持我添加類ajaxlink的鏈接直接進入該鏈接的鏈接在jQuery中處理多個點擊事件,其中重要的順序
<a class="someclass ajaxlink" href="somelocation1">goto1</a>
<a class="someclass ajaxlink" href="somelocation2">goto2</a>
<a class="someclass ajaxlink" href="somelocation3">goto1</a>
的JavaScript看起來像這樣
$('.ajax-link').click(function(){get link with ajax});
如果用戶已啓用JavaScript他將通過ajax獲取頁面。一個特定的我有一個多頁,所以我有相同的功能,爲所有頁面生成相同的鏈接。
現在我的問題是在一個頁面中的一個鏈接,我想做一些不同的事情。它必須在ajax頁面返回成功時觸發另一個函數。現在我有這樣的代碼。
<div class"specialclass">
<a class="someclass ajaxlink" href="somelocation1">goto1</a>
<a class="someclass ajaxlink" href="somelocation2">goto2</a>
<a class="someclass ajaxlink" href="somelocation3">goto1</a>
<a class="someclass ajaxlink special-1" href="somelocation">goto</a>
<a class="someclass ajaxlink special-2" href="somelocation">goto</a>
<a class="someclass ajaxlink special-3" href="somelocation">goto</a>
</div>
$('.ajax-link').click(function(){get link with ajax});
$('.specialclass .special-1,
.specialclass .special-2,
.specialclass .special-3').click(function(){get link with ajax});
此設置,因爲我想要在正常情況下執行在同一容器中的普通鏈接。只有一個我想添加另一個點擊事件的特殊鏈接。我認爲我不能將此事件添加到正常的點擊事件中,因爲它只需在應用程序的特定頁面中觸發。在所有其他頁面上,它將是不必要的代碼。
然而,這個設置產生了錯誤,因爲特殊類的點擊首先被觸發,然後是ajaxlink類。這必須切換,只有在ajaxlink返回成功時纔會觸發。
任何人都有這個想法。
謝謝,我覺得這個解決方案將工作的偉大。這樣,我可以做更多的Ajax完成後,我會試試看。 – 2010-03-10 14:27:25
我對此有疑問。使用這種方法,如果鏈接同時具有ajax-link類和spcialclass,normalclick事件將被觸發兩次? – 2010-03-10 14:37:58
我加了event.stopImmediatePropagation();到specialClass,現在工作正常,謝謝! – 2010-03-10 14:52:38