Pau*_*nça 5 jquery jquery-mobile asp.net-mvc-4
我对jquery mobile有点问题.总是我的页面被称为此功能运行.
$(document).bind('pagechange', function () {
// peforms ajax operations
})
Run Code Online (Sandbox Code Playgroud)
问题是每次查看我的页面时都会增加调用ajax的次数...例如:如果页面被查看5次,下次将执行相同的ajax请求6次.
我正在使用asp.Net MVC 4.

完整代码:
@{
//ViewBag.Title = "Consulta";
Layout = "~/Views/Shared/_LayoutMenu.cshtml";
}
<div class="ui-body ui-body-b" id="test">
(...) some html code (...)
</div>
<script>
$(document).bind('pagechange', function () {
$('#info').css('visibility', 'hidden');
$('#name').keypress(function (e) {
if (e.keyCode == 13) {
var code = $(this)[0].value;
$.ajax({
url: '/Consulta/ObterDadosPulseira',
data: $(this).serialize(),
success: function (data) {
$('#info').css('visibility', 'visible');
var info = $('#info')[0];
$('#info [id=gridCod]').html(data[0].cod);
$('#info [id=gridName]').html(data[0].nome);
},
complete: function () { },
error: function () { alert('error!'); }
});
$(this)[0].value = '';
}
});
$('#name').focus();
});
Run Code Online (Sandbox Code Playgroud)
通常这是因为您在另一个事件处理程序中绑定事件处理程序.例如,如果您在pagechange事件处理程序中绑定事件处理pageshow程序.
此外,如果要绑定到特定页面的页面事件,则只需绑定到该data-role="page"元素:
$(document).delegate('#my-page-id', 'pageshow', function () {
//now `this` refers to the `#my-page-id` element
});
Run Code Online (Sandbox Code Playgroud)
我刚刚看到你的更新答案与额外的代码,你的问题是你绑定另一个事件处理程序内的事件处理程序.基本上每次pagechange触发事件时,都会将新的事件处理程序绑定到该#name元素.
试试这个:
$(document).delegate('#name', 'keypress', function () {
if (e.keyCode == 13) {
var code = this.value;
$.ajax({
url: '/Consulta/ObterDadosPulseira',
data: $(this).serialize(),
success: function (data) {
$('#info').css('visibility', 'visible');
var info = $('#info')[0];
$('#info [id=gridCod]').html(data[0].cod);
$('#info [id=gridName]').html(data[0].nome);
},
complete: function () { },
error: function () { alert('error!'); }
});
this.value = '';
}
}).bind('pagechange', function () {
$('#info').css('visibility', 'hidden');
$('#name').focus();
});
Run Code Online (Sandbox Code Playgroud)
这使用事件委托将事件处理程序绑定到#name元素,这样事件处理程序将一次绑定一次.
文档.delegate():http://api.jquery.com/delegate
| 归档时间: |
|
| 查看次数: |
5447 次 |
| 最近记录: |