我需要爲某些輸入元素添加一個顏色選擇器。 我正在使用jQuery - 在元素上觸發一個函數
$(".element").colorPicker(){ ... }
這很好用。 問題是,頁面有一個AJAX形式,當提交時,將覆蓋以前的形式(新的輸入字段等)。之後,colorPicker停止工作。
那麼我怎樣才能將這個功能激發到新創建的輸入呢?
我需要爲某些輸入元素添加一個顏色選擇器。 我正在使用jQuery - 在元素上觸發一個函數
$(".element").colorPicker(){ ... }
這很好用。 問題是,頁面有一個AJAX形式,當提交時,將覆蓋以前的形式(新的輸入字段等)。之後,colorPicker停止工作。
那麼我怎樣才能將這個功能激發到新創建的輸入呢?
只需重新附加ajax回調中的調用,因爲我不相信有可靠的事件,您可以使用它來.live
或.delegate
它,而不會透露更多信息。
我相信這可能工作:
$(".element").live('click focus', function() {
var $this = $(this);
if (!$this.data('hasColorPicker')) {
$this.colorPicker({ /* ... */ }).data('hasColorPicker', true);
$this.click(); // trigger the color picker - assuming it binds itself to the click event
}
});
什麼MEDER說的是好的,但也,如果你是通過複製現有創建新的元素,可以考慮使用$.clone(true)
讓你的副本,它將會延續現有的事件綁定也是如此。
所以我在'ajax'成功函數中再次添加''部分' – Alex 2010-10-04 01:22:19
在'ajax'success'函數中,重新調用'.colorPicker'。 – 2010-10-04 01:23:25