0

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 オートコンプリートは、CSS "display: none;" を使用してユーザー入力が行われるまで、リスト項目を非表示にします。これにより、クリック機能が割り当てられなくなりますか? もしそうなら、どうすればこれを回避できますか?

さらに更新:

「ライブ」機能が減価償却されていることがわかりました。代わりに「オン」に変更しました。残念ながら、これで問題は解決しませんでした:-(

ページの読み込み時に「li」項目が CSS によって非表示になっている可能性がありますか?

ここにデプロイしました:

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

(ユーザー名: テスト、パスワード: テスト)

4

1 に答える 1

-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();
});
于 2013-10-27T21:12:42.270 に答える