我有这个用于更新背景图像的 jquery 函数。
var jq = $.noConflict(); jq(文档).ready(函数(){
jq('#s22').click(function() {
d = new Date();
var tableframe3 = jQuery("div .rs4",window.parent.preview.document);
tableframe3.css("backgroundimage","url(images/bg.png?"+d.getTime());
});
});
它确实有效,但是当我将它添加到使用 ajax.updater 的表单中时,它只会在我第一次提交表单时触发。我必须重新加载整个页面才能让它再次工作。这是我用于提交表单的代码。
<form action="<?=$_SERVER['REDIRECT_URL'] ?>" method="POST"
onsubmit="try{
showStatus('working...');$(this).request({
sender:$(this).identify(),
onSuccess :function(transport){
try{
new Ajax.Updater($($('<?=$function ?>_container').parentNode),'Sites/<?=$function ?>/<?=$item[$this->mainModel->primaryKey] ?>/<?=$index ?>?ajax=true',{evalScripts:true}); showStatus('Complete!',2000);
}catch(e){
showStatus(e.toString(),4000);
}
}
})}catch(e){showStatus(e.toString(),4000)};return false;">
这是提交按钮:)
<input type="submit" id="s22" value="Select" />
我知道问题出在这个 Ajax.Updater 上,因为当我将其注释掉时,jquery 可以在每次提交时工作,而无需重新加载页面。
new Ajax.Updater($($('<?=$function ?>_container').parentNode),'Sites/<?=$function ?>/<?=$item[$this->mainModel->primaryKey] ?>/<?=$index ?>?ajax=true',{evalScripts:true}); showStatus('Complete!',2000);
我是 javascript 的新手,所以我不知道是什么问题。