jQuery Click - 在页面 1st 加载时不起作用,但如果页面重新加载则有效

jQuery Click - Doesn't work when page 1st loaded, but works if page is reloaded

本文关键字:加载 新加载 有效 如果 不起作用 Click 1st jQuery      更新时间:2023-09-26

我对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;"进行输入。 这会阻止分配单击功能吗? 如果是这样,我该如何解决此问题?

进一步更新:

发现"实时"功能已折旧。 改为"开"。 不幸的是,这并没有解决问题:-(

可能是因为在加载页面时"li"项被CSS隐藏了吗?

我已在此处部署了它:

http://rar_mobile_dev.runarestaurant.com/Ingredient/Create?recipe_id=15240

(用户名:测试,密码:测试)

你可以尝试使用 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();
});