1

JQuery 1.3.0 モバイル オートコンプリートに問題があります。リスト アイテムを選択して、その選択を別の DIV または非表示の入力フィールドに追加する方法がわからないからです。これが私のコードです:

$( document ).on( "pageinit", "#main", function() 
{
    $( "#addimageword" ).on( "listviewbeforefilter", function ( e, data ) 
    {
        var $ul = $( this ),
        $input = $( data.input ),
        value = $input.val(),
        html = "";
        $ul.html( "" );
        if ( value && value.length > 2 ) {
            $ul.html( "<li><div class='ui-loader'><span class='ui-icon ui-icon-loading'></span></div></li>" );
            $ul.listview( "refresh" );
            $.ajax({
                type : 'GET',

                url: "./inc/search2.php",
                dataType: "json",
                data: {
                    q: $input.val()
                }
            })
            .then( function ( response ) {
                $.each( response, function ( i, val ) {
                    var substr = val.split('_');
                    var idword = substr[0];
                    var your = substr[1];
                    var lblyour = substr[2];
                    var learn = substr[3];
                    var lbllearn = substr[4];

                    var lblyourlang = substr[6];
                    var lbllearnlang = substr[7];

                    html += "<li><a href='#'>" +lblyour+": "+your+" - "+lbllearn+": "+learn+ "</a></li>";
                });
                $ul.html( html );
                $ul.listview("refresh");
                $ul.trigger("updatelayout");
            });
        }
    });

    $('#addimageword li a').click(function(){

        var listItemText = $(this).text;
        $('#result').text(listItemText);
        $('#addimageword').children('li').hide(); 
        $('#addimageword').bind(function(){
            $.mobile.listview.prototype.options.filterPlaceholder = listItemText;
        });        
        e.preventDefault();
    })

    <ul id="addimageword"
        data-role="listview"
        data-inset="true" 
        data-filter="true" 
        data-filter-placeholder="Type in your word" data-filter-theme="d">
    </ul>

    <div id="result">

    </div>

誰もがそれがどのように機能するか知っていますか?

前もって感謝します...

4

3 に答える 3

0

ページの読み込み後に li が追加されるため、 を使用する必要があります.delegate()

aタグに次のようなクラスを与えます。

 html += "<li><a class="example">" +lblyour+": "+your+" - "+lbllearn+":  "+learn+ "</a></li>";

次に、次のような関数を用意します。

$('body').delegate('.example', 'click', function() {
   var val = $(this).html();  
   $('$hiddeninput').html(val);
});  
于 2013-06-06T22:47:21.103 に答える