随着jquery mobile刷新,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>
投票页面:
@{
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 :(得分:1)
从我所看到的,这不是一个ASP.NET问题,很可能是一个jQuery Mobile问题。
要了解此问题,您需要了解jQuery Mobile如何处理页面和JavaScript。它使用AJAX将页面加载到DOM中。
第一页正常加载。它的HEAD和BODY被加载到DOM中。该内容将保留在那里(除非页面被刷新)以等待进一步的内容加载。加载第二页时,只将其BODY内容加载到DOM中,当我说其BODY内容时,我的意思是DIV,其属性为data-role =“page”及其内容。
这听起来可能不成问题,但你应该三思而后行。如果我们有几个HTML页面,并且每个页面都有一些独特的内容,那么就可以说,只有在页面执行期间才使用不同的JavaScript,更不用说其他CSS文件了。在这些文件的HEAD中找到的所有内容都将被丢弃,并且不会执行其JavaScript。刷新页面也有同样的意义。
详细了解here +解决方案。