2012-02-26 3 views
1

Если я открываю JQuery мобильного диалог на моей стартовой странице, как это:Мобильный диалог Mvc3 JQuery вызывает ошибку обратной связи?

@Html.ActionLink("DialogPage", "DialogPage", "Home", null, new {data_rel="dialog" }) 

, а затем закройте диалоговое окно с помощью кнопки X, начальная страница не перезагружается, который я думаю, что это правильное поведение.

Но если я перейду на вторую страницу, откройте диалоговое окно jquery mobile точно так же на второй странице и с помощью кнопки X, чтобы закрыть диалоговое окно, диалоговое окно заставляет вторую страницу перезагружать!

Это очень легко воспроизвести. Это ошибка или это каким-то образом ожидаемое поведение? Это привело меня в бешенство в течение нескольких дней (даже в течение нескольких недель). Пожалуйста, помогите мне.

Edit: я не знаю, как связать страницы в jsfiddle, но здесь мой исходный код разбивается на три страницы (выделены жирным шрифтом заголовки):

Начальная страница:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Home Page</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0;" /> 
    <meta name="apple-mobile-web-app-capable" content="yes" /> 
    <link type="text/css" href="Content/themes/base/jquery.mobile/jquery.mobile-1.0.min.css" rel="stylesheet" /> 
    <script type="text/javascript" src="Scripts/jquery-1.6.4.min.js"></script> 
    <script type="text/javascript"> 
     $(document).bind("mobileinit", function() { 
     }); 
    </script> 
    <script type="text/javascript" src="Scripts/jquery.mobile/jquery.mobile-1.0.min.js"></script> 
</head> 
<body> 
<div data-role="page" id="page1"> 
    <div data-theme="c" data-role="header" data-position="inline" style="height: 70px; background-image: url('/Intranet/Mobile/Images/Bg_Main.png'); background-repeat: repeat-x"> 
     <h1>header</h1> 
    </div> 
    <h2>Jquery mobile dialog bug?</h2> 
    <div data-role="content"> 
     <a href="../Dialog/Dialog" data-rel="dialog">First dialog without postback behavior</a> 
     <br /> 
     <br /> 
     <a href="/SecondPage/TheSecondPage">Link to second page containing a dialog with postback</a> 
    </div> 

    <div data-role="footer" data-theme="c" class="ui-bar"> 
    </div> 
</div> 
</body> 
</html> 

Вторая страница :

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0;" /> 

<meta name="apple-mobile-web-app-capable" content="yes" /> 

<link type="text/css" href="../Content/themes/base/jquery.mobile/jquery.mobile-1.0.min.css" rel="stylesheet" /> 

<script type="text/javascript" src="../Scripts/jquery-1.6.4.min.js"></script> 

<script type="text/javascript"> 
    $(document).bind("mobileinit", function() { 
    }); 
</script> 

<script type="text/javascript" src="../Scripts/jquery.mobile/jquery.mobile-1.0.min.js"></script> 
</head> 
<body> 
<div data-role="page" id="page1"> 
    <div data-theme="c" data-role="header" data-position="inline" style="height: 70px; background-image: url('/Intranet/Mobile/Images/Bg_Main.png'); background-repeat: repeat-x"> 
<h1> 
    header</h1> 
</div> 
<div data-role="content"> 
<a href="../Dialog/Dialog" data-rel="dialog">Dialog with postback behavior</a> 
<br /> 
<br /> 
</div> 
    <div data-role="footer" data-theme="c" class="ui-bar"> 
    </div> 
</div> 
</body> 
</html> 

Диалог Страница:

<div data-role="content" data-theme="a" > 
This is the dialog. 
</div> 

Если есть что-то еще, что я могу сделать, чтобы сделать это более легким, пожалуйста, дайте мне знать.

Редактировать 2: Я думаю, это связано с: https://github.com/jquery/jquery-mobile/issues/3549#issuecomment-4060809 содержит аналогичный пример.

+0

Если это легко воспроизвести, как насчет того, чтобы вы опубликовали часть своего кода или даже лучше поместили его в jsbin или jsfiddle.net? – shanabus

ответ

0

Я не могу сказать, является ли это вашей проблемой, но, надеюсь, это так. :) В диалоговой странице, убедитесь, что вы не имеете это яваскрипт бегущего

<script type="text/javascript"> 
    $(document).bind("mobileinit", function() { 
     // As of Beta 2, jQuery Mobile's Ajax navigation does not work in all cases (e.g., 
     // when navigating from a mobile to a non-mobile page), hence disabling it. 
     $.mobile.ajaxEnabled = false; 
    }); 
</script> 

Если отключить Ajax, он делает полный пост обратно, который заставляет страницу обновлять, когда вы вернетесь.

+0

Это не проблема. Ajax включен. Спасибо, в любом случае. – user1052055

Смежные вопросы