我遇到了jQuery点击功能的问题。我正在尝试将jQuery Mobile Autocomplete集成到C#MVC应用程序中。
首次加载页面时,以下代码无效。但是,如果我重新加载/刷新页面,它就可以工作。
HTML:
<ul data-role="listview" class="selectitems" data-filter="true" data-inset="true" data-filter-reveal="true" data-filter-placeholder="Search Ingredients...">
@foreach (var i in Model.ingredientList){
<li data-id="@i.id" data-unit="@i.useUnit.symbol"><a href="#" class="ui-screen-hidden">@i.title</a></li>
}
</ul>
脚本:
<script src="/Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.mobile-1.3.2.min.js" type="text/javascript"></script>
$(document).ready(function () {
$('.selectitems > li').on('click', function () {
$('input[data-type="search"]').val($(this).text());
$("ul:jqmData(role='listview')").children().addClass('ui-screen-hidden');
$('#hdnIngredientID').val($(this).data('id'));
$('#txtUseQtyDetails').val($(this).data('unit'));
$('#hdnIngredientTitle').val($(this).text());
$('#txtQty').focus();
});
$('.ui-input-clear').on('tap', function () {
$('#hdnIngredientID').val('');
$('#txtUseQtyDetails').val('');
});
});
任何帮助都将不胜感激。
更新:
jQuery-mobile autocomplete隐藏列表项,直到使用CSS“display:none;”进行用户输入。这是否会阻止分配点击功能?如果是这样,我该如何解决这个问题?
进一步更新:
发现“实时”功能已折旧。改为将其改为“on”。不幸的是,这并没有解决问题: - (
可能是因为加载页面时CSS会隐藏“li”项目吗?
我在这里部署了它:
http://rar_mobile_dev.runarestaurant.com/Ingredient/Create?recipe_id=15240
(用户名:test,密码:test)
答案 0 :(得分:-1)
您可以尝试使用on()而不是点击。
$(document).on('click', '.selectitems > li', function(){
$('input[data-type="search"]').val($(this).text());
$("ul:jqmData(role='listview')").children().addClass('ui-screen-hidden');
$('#hdnIngredientID').val($(this).data('id'));
$('#txtUseQtyDetails').val($(this).data('unit'));
$('#hdnIngredientTitle').val($(this).text());
$('#txtQty').focus();
});