2010-10-04 63 views
1

我需要爲某些輸入元素添加一個顏色選擇器。 我正在使用jQuery - 在元素上觸發一個函數

$(".element").colorPicker(){ ... } 

這很好用。 問題是,頁面有一個AJAX形式,當提交時,將覆蓋以前的形式(新的輸入字段等)。之後,colorPicker停止工作。

那麼我怎樣才能將這個功能激發到新創建的輸入呢?

回答

1

只需重新附加ajax回調中的調用,因爲我不相信有可靠的事件,您可以使用它來.live.delegate它,而不會透露更多信息。

+0

所以我在'ajax'成功函數中再次添加''部分' – Alex 2010-10-04 01:22:19

+0

在'ajax'success'函數中,重新調用'.colorPicker'。 – 2010-10-04 01:23:25

0

我相信這可能工作:

$(".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 
    } 
}); 
0

什麼MEDER說的是好的,但也,如果你是通過複製現有創建新的元素,可以考慮使用$.clone(true)讓你的副本,它將會延續現有的事件綁定也是如此。

相關問題