once() 是我碰到 ajax submit 的時候第一次使用到
它是一個已經內建到 Drupal 的一個 jQuery 插件
令一個 event 不會 bind 兩次
原意是一條連結觸發 ajax
我bind 了 click event 到增加一個 loading 的 gif
取代 (replaceWith) 的方式將一個 form 更換
因為 replaceWith 之後都會再一次執行 javascript
下一次解發連結便會有兩個 loading gif
可以使用 once() 解決:
$('.views-field-edit-node a').once().click(function(){
$(this).after('<div class="ajax-progress ajax-progress-throbber"><div class="throbber"> </div></div>');
$.ajax({
//..
});
});
ref:
http://drupal.org/node/756722
http://archive.plugins.jquery.com/project/once