2014-05-18 2 views
1

jquery 모바일을 새로 고침 할 때 Raty 별 등급이 사라집니다. jquery 모바일 MVC로 새로 고침시 Raty 별 등급이 사라집니다.

강령 :

레이아웃 :

<body> 
    <div data-role="page"> 

    <div data-role="header" data-position="fixed" style="height:12px"></div> 

    <div class="ui-content" role="main">@RenderBody()</div> 

    <div data-role="footer" data-position="fixed" style="text-align:center;"></div> 
    </div> 
</body> 

votation 페이지 : 내가 페이지를 새로 고치면

@{ 
    Layout = "~/Views/Shared/_Layout.Mobile.cshtml"; 
} 
<script> 
    $('#star').raty({ 
    number: 5, 
    path: '/Images', 
    size: 24, 
    width: 150, 
    click: function (score) 
    { 
     $("#Valor").val(score); 
    } 
}); 
</script> 

@using (Html.BeginForm("AvaliarOrador", "Mobile", FormMethod.Post, new { @id = "frmAvaliarOrador" })) 
{ 
    <input type="hidden" id="Valor" name="Valor" /> 
    <div id="star" style="padding-top: 20px; padding-bottom: 10px; margin-left: auto; margin-right: auto; cursor: pointer; width: 170px"></div> 
} 

, 별이 사라지고 난 다시 홈페이지로 가야 새로 고침하고 다시 시작하십시오.

+0

게시 한 코드를 사용하면 기대치가 어떻게됩니까? 페이지에 원래 선택한 별표 수가 계속 표시 될 것으로 기대하십니까? 별표 선택을 어딘가에 유지하면서 새로 고침하면 다시 표시됩니까? –

+0

안녕하세요, 감사합니다. 예, 페이지를 새로 고침 한 후 별을 표시하고 싶습니다. 이전 선택이 있으면 좋겠지 만, 지금은 가장 중요한 것이 사라지기 때문에 보여줄 수 있습니다. – Patrick

답변

1

이 문제는 ASP.NET 문제가 아니므로 jQuery 모바일 문제 일 가능성이 큽니다.

이 문제를 이해하려면 jQuery Mobile이 페이지와 JavaScript를 처리하는 방법을 이해해야합니다. 그것은 DOM에 페이지를 로딩 할 때 AJAX를 사용합니다.

첫 페이지가 정상적으로로드되었습니다. HEAD와 BODY가 DOM에로드됩니다. 해당 콘텐츠는 추가 콘텐츠로드를 기다리기 위해 페이지가 새로 고쳐지지 않으면 해당 위치에 유지됩니다. 두 번째 페이지가로드되면 BODY 내용 만 DOM에로드되고 BODY 내용을 말할 때 data-role = "page"속성과 내부 내용을 가진 DIV를 의미합니다.

이것은 문제가있는 것으로 들리지는 않지만 두 번 생각해야합니다. 여러 개의 HTML 페이지가 있고 각 페이지마다 고유 한 것이있는 경우 추가 CSS 파일은 말할 것도없고 해당 페이지 실행 중에 만 다른 JavaScript가 사용되도록 할 수 있습니다. 이러한 파일의 HEAD에서 발견되는 모든 내용이 삭제되고 JavaScript가 실행되지 않습니다. 동일한 것은 페이지가 새로 고쳐질 때도 관련이 있습니다.

자세한 내용은 here + 솔루션을 참조하십시오.

관련 문제