我們在「garagecar/view/index.ctp」視圖頁面中有一個部分列表。第一次加載頁面時,部件列表將用PHP填充。每個部分都有一個刪除按鈕。當用戶點擊「刪除」時,控制器鏈接刪除部分,而JQuery的/阿賈克斯刪除,顯示在指數部分的HTML:動態添加的HTML不會通過CakePHP中的JQuery動態刪除
$html->link(__('remove', true),
array('controller'=>'garage_parts',
'action'=>'delete',
$gpart['GaragePart']['id']),
array('class'=>'js-ajax remove_part'));
$(".remove_part").click(function(){
var answer = confirm("Remove this part?");
if (answer){
var partdiv = $(this).parent().parent();
$.ajax({
type: "post",
url: this.href,
});
$(partdiv).remove();
}
return false;
});
當用戶需要動態地添加我們用新的零件JQuery $()。load函數加載「garagepart/view/addpart.ctp」。在addpart.ctp中,有一個$()。ajax函數,它通過JSON添加零件,並將新零件的HTML附加到index.ctp中的零件列表中。
但是,如果您單擊此新部件上的刪除按鈕,則上述JQuery函數不會進行評估。該功能無法刪除HTML,即使它的結構與預裝PHP的部件完全相同。 CakePHP刪除鏈接仍然有效,所以如果你重新加載頁面,那麼這個部分就不存在了。
爲什麼JQuery不動態刪除動態添加的部分?刪除只適用於預裝了PHP的部分,而不是通過JQuery/Ajax添加的新部分。如果您需要我發佈更多代碼,請告訴我...謝謝!
我忘了提及......上面的問題可能與我們使用2個不同的視圖和.load有關嗎?我們嘗試將一些代碼移動到索引文件中,並仍然存在相同的問題... – 2009-10-28 19:24:43