2012-05-31 73 views
0
$("#btnOK").click(function(){ 
    parent.$("#res"+(d)).load("Customise.php #uni", "PID="+$("#P option:selected").val()); 
    parent.$.fancybox.close(function(){ 
    $("#res"+(d-1)+" a#p").fancybox({ 
      'transitionIn' : 'elastic', 
      'transitionOut' : 'elastic', 
      'width':400, 
      'height':300, 
      'overlayOpacity' : 0.5, 
      'type'    : 'iframe' 
     }); 
    }); 
}); 

我點擊按鈕後。我使用回調函數來重新生成#p它無法工作? 任何解決方案?花式框回調函數.load jquery

 <div class="cell"> 
    <label id="pID">PID</label> <br /> <input type="text" id="txtPID" size="3" value="<? if(is_numeric($pID)) print("$pID"); ?>"/> 
    <a href="SelectP.html" id="p"><img src="Images/P.png" name="SelectP_button" id="SelectP_button" /></a> 
    </div> 
+0

我想我們在這裏缺少一些信息。你想實現什麼? ...這是iframe中的代碼嗎? iframe或父頁面中的選擇器「#res」+(d-1)+「a#p」'...是哪裏?你可以顯示你的html嗎? ...幫助自己獲得幫助。 – JFK

+0

它在父頁面 – user1397840

+0

那麼我想你應該在父頁面使用'onClosed'回調來重新初始化選擇器'「#res」+(d-1)+「a#p」'而不是從子頁面。 – JFK

回答

0
$("#btnOK").click(function(){ 
    parent.$("#res"+(d)).load("Customise.php #uni", "PID="+$("#P option:selected").val()); 
    parent.$.fancybox.close(); 
}); 


$("#res"+(d-1)+" a#p").fancybox({ 
     'transitionIn' : 'elastic', 
     'transitionOut' : 'elastic', 
     'width':400, 
     'height':300, 
     'overlayOpacity' : 0.5, 
     'onClosed: function(){ 
     $("#res"+(d-1)+" a#p").fancybox({ 
        'transitionIn' : 'elastic', 
        'transitionOut' : 'elastic', 
        'width':400, 
        'height':300, 
        'overlayOpacity' : 0.5, 
        'type'    : 'iframe' 
        }); 
     }, 
     'type'    : 'iframe' 
    }); 
}); 
+0

瞧,這就是我的意思 – JFK

+0

但這個代碼有問題。如果我運行它兩次它是無效的。因爲內在fancybox沒有onclosed讓我說如果我有一個onclosed的內fancybox我會做無限的時間。 – user1397840

+0

我沒有檢查你的代碼,我的意思是使用'onClosed'回調是正確的方法。不過,我認爲我們錯過了更多的信息,因爲您不清楚父頁面中的html和js以及子頁面中的內容。例如,選擇器'#btnOK'的html在哪裏? ...你讓我們猜測。 – JFK

0

你確定要選擇$(「#res」+(d-1)+「a#p」)嗎?

林假設d是一個數字,你會因此產生:

#res3a#p 
在你的選擇,這是無效的

,你就是可能試圖做到這一點

$("#res"+(d-1)+" a#p") 
+0

它是有效的。我有其他部分使用相同的代碼,它工作得很好。不工作的是代碼的重新附加。間距不是問題。 – user1397840