2013-03-14 52 views
3

我正在開發一個移動解決方案,結合jQuery.mobile和 asp.net webforms。jQuery移動和ASP.NET組合問題

對於我的asp.net的回傳控制到正常工作我必須禁用阿賈克斯 頁面的頂部,這樣的:

<script> 
     $.mobile.ajaxEnabled = false; 
    </script> 

但當AJAX是這樣的禁止,其它功能沒有按」 t似乎工作。 我不能叫對話框/ jQuery的,從文件準備

例如彈出窗口:

$(document).ready(function() {   
    $('#myPopup').popup('open'); 
    }); 

這將正義事業彈出在不到一秒鐘的展示, 則自敗。另外,當我從代碼隱藏中註冊客戶端腳本 以在點擊服務器側按鈕 時觸發彈出窗口時,彈出窗口只會閃爍,然後消失。 但是,當我禁用頁面頂部的AJAX,彈出 調用工作正常。

任何想法如何解決這些問題?

回答

0

準備好的文檔無法成功使用jQuery Mobile。它通常會在頁面DOM被填充之前觸發。

而是這行:

$(document).ready(function() {   
    $('#myPopup').popup('open'); 
}); 

使用此行:

$(document).on('pagebeforeshow', '#page-id', function(){  
    $('#myPopup').popup('open'); 
}); 

#page-id是包含彈出網頁的ID。

jQuery Mobile的具有文檔準備一個問題,所以它的開發者已經創建了頁面evenets來解決這個問題,在這個ARTICLE閱讀更多關於它或發現它HERE

編輯:

我認爲你的問題也是$.mobile.ajaxEnabled = false;處理。

該代碼示例MUSTmobileinit事件觸發這樣的:

$(document).bind("mobileinit", function() { 
    $.mobile.ajaxEnabled = false; 
}); 

一兩件事,mobileinit事件MUSTjQuery Mobile被初始化,這樣被觸發:

<script src="http://www.dragan-gaic.info/js/jquery-1.8.2.min.js"></script>  
<script> 
     $(document).bind("mobileinit", function() { 
      $.mobile.ajaxEnabled = false; 
     });  
</script> 
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> 
+0

嗨 - 謝謝你的回覆。我試圖改變爲'pagebeforeshow',但它仍然只工作,如果我設置$ .mobile.ajaxEnabled = true; – micknt 2013-03-14 11:56:45

+0

讓我們一步一步來。你是否在mobileinit事件中禁用了ajax? Ajax不能像這樣被禁用: Gajotres 2013-03-14 12:01:47

+0

嗨,我越來越近,但還沒有。這是JQM中一種奇怪的工作流程。我現在有: $(document).on('pageinit',function(){ $ .mobile.ajaxEnabled = false; }); Page.ClientScript.RegisterClientScriptBlock(Me.GetType(),「popup」,「$(document).on('pagebeforeshow','#mobile_page',function())返回一個在我的代碼隱藏中的按鈕事件: {'('#alert')。popup('open');});「,True) Response.Write(」test「) 問題是調用彈出窗口後的任何代碼都沒有執行。所以在這種情況下,Response.Write(「test」)不會被執行。 – micknt 2013-03-14 13:30:20

0

I DID IT .....

不要使用 說明中描述here

只需打開jquery.mobile-1.3.1.min.js文件 精細ajaxEnabled:0,將其更改爲:ajaxEnabled:1

打到現在CTRL + F5並在繼續進行的過程中歡樂的項目! ;)