我有下面的代碼我的網頁打開一個窗口的fancybox每當有用戶點擊帶class = IFRAME中的鏈接。消防JQuery的窗口從裏面天冬氨酸面板
$.noConflict();
$(document).ready(function() {
$("a.fancybox").fancybox({
'width': '75%',
'height': '75%',
'autoScale': false,
'transitionIn': 'elastic',
'transitionOut': 'elastic',
'type': 'iframe'
});
});
我的問題是,當鏈接嵌套在一個ASP面板內,這不起作用。我試着執行這裏找到的答案Rebinding events in jQuery after Ajax update (updatepanel)。結果是FancyBox在面板內容改變之前正確觸發。
不知道是否是相關的,但ASP面板裏面的內容是被用ajax刷新一個DataList每當一個radgrid控件改變行選擇。我想調用FancyBox的鏈接最初是在DataList項目模板中,然後我將它移動到DataList的外部,但它仍然在asp面板內部。我希望它留在asp面板中,因此我正在嘗試爲我的JQuery找到適當的事件來響應。
我也試着築巢JQuery的響應該radgrid控件RowClick事件在函數中。那也行不通。
接下來我應該嘗試什麼?
編輯 根據下面的答案,它不會出現有一個很好的方式來實現這一點。所以,這是另一種潛在剝皮的方法。也許我可以在頁面上的現有工具欄上添加一個按鈕,而不是在面板中使用超鏈接。我已經從動態設置NavigateURL的工具欄中激活了一個JavaScript函數,並在新窗口中打開它。以下是該功能的一個示例。第一個IF語句顯示了我目前如何實現設置URL並在RadWindow中啓動它。第二個IF聲明是我認爲我可以使用相關URL打開FancyBox打開的地方。也許這將解決我原來的問題中提出的ajax問題。有誰知道如何使這項工作?我可以從Javascript打開FancyBox嗎?
function click_handler(sender, args) {
var button = args.get_item();
buttontext = button.get_text();
if (buttontext == "Request Return") {
//This is an example that uses a RadWindow instead of FancyBox
var mastertable = $find("<%=RadGrid1.ClientID %>").get_masterTableView();
var PackageID = mastertable.get_dataItems()[0].getDataKeyValue("PackageID");
var oManager = GetRadWindowManager();
oManager.open("Return.aspx?ID=" + PackageID, "RadWindow1");
return false;
}
if (buttontext == "Open My Fancy Box") {
//do something here to a dynamic URL in FancyBox
}
聽起來像是你需要使用'活()'方法的附加活動。見http://api.jquery.com/live/ – Tejs