2014-02-27 40 views
0

我使用Jquery/Ajax方法保存文本。我使用了一個編輯就地腳本(Jeditable),它允許通過點擊來編輯文本。不幸的是,Jeditable腳本不適用於動態創建的項目,它只在我重新加載頁面時才起作用。jQuery不適用於動態創建的項目

這是我的腳本:

$(".edwa").editable("/edit.php", { 
indicator:"<img src='/images/loading.gif'>", 
width:439, 
height:90, 
loadurl:"/load.php", 
type:"textarea", 
onblur:"submit" 
}); 

在類似的情況下,我加入「$(document.body)」的劇本,但在這種情況下,我不知道會是怎樣正確的語法中增加「解決了這一問題$(document.body)「。任何想法或任何其他建議來解決問題?

+0

運行顯示的代碼_after_動態添加的項目已被添加。 – nnnnnn

+0

我嘗試'.find()'函數,像'$(document).find('。target')' –

+0

簡單地使用'.on('click',...)'不適用於jQuery 1.7+了。檢查這個解決方案http://stackoverflow.com/questions/15090942/jquery-on-method-not-working-on-dynamic-content – Sliq

回答

1

後綁定你的編輯功能,你必須重新召回JavaScript函數將它們應用到新創建的元素。 $(document).ready()僅對全頁加載執行;

也許這解決您的問題:

<script type="text/javascript"> function pageLoad() { 
       $(".edwa").editable("/edit.php", { 
        indicator:"<img src='/images/loading.gif'>", 
        width:439, 
        height:90, 
        loadurl:"/load.php", 
        type:"textarea", 
        onblur:"submit" 
       }); 
      } 
</script> 

,你必須調用頁面加載()每一次工作,你用ajax做了部分更新。

+0

是的,這個工程,但如果我使用它,我需要2個這個功能的副本 - 我的原創和你的pageLoad(); – user

+1

不需要重複。只需調用它兩次: $(document).ready(function(){ pageLoad(); }); – SalmanShariati

+0

Java? JAVA?你把JavaScript和Java混淆了?對於這樣做的人來說,地獄裏有一個特別的地方! :) – Sliq

0

在動態加載元素後,您應該重新運行插件的初始化。

0

一個partail上傳後發生創建動態元素

相關問題