1

我有这个用于更新背景图像的 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 的新手,所以我不知道是什么问题。

4

0 回答 0