点击“隐藏”li

时间:2013-07-25 11:23:10

标签: javascript jquery jquery-mobile

fiddle

我在index.html:

<div data-role="fieldcontain" id="Container">
<ul id="my_ul" data-role="listview" data-filter="true" data-filter-reveal="true" data-filter-placeholder="Text" data-inset="true">
    <li class="ui-screen-hidden"><a href="#">12</a></li>
    <li class="ui-screen-hidden"><a href="#">123</a></li>
    <li class="ui-screen-hidden"><a href="#">1234</a></li>
</ul>
</div>

JS:

$("#my_ul li").click(function() {
    $('#Container form input').val($(this).text());
    //$(this).hide();
});

因此,当我点击li时,来自li的文本转到输入。如果我使用hide - 该元素不会出现,当我删除输入中的sting时。

我需要 - 点击li,输入li apears中的文字,所有下拉列表li隐藏,但如果我从输入中删除了字符串li apears。怎么做?

感谢。

3 个答案:

答案 0 :(得分:2)

您可以尝试此操作(选择后隐藏列表项目)

$("#my_ul li").click(function() {
    $('#Container form input').val($.trim($(this).text()));
    $('#my_ul').children().addClass('ui-screen-hidden');
});

DEMO.

答案 1 :(得分:0)

Hacky解决方案是自己处理隐藏和显示ul。

小提琴:http://fiddle.jshell.net/Qyvhc/8/

$("#my_ul li").click(function() {
    $('#Container form input').val($(this).text());
    $("#my_ul").hide();
});

$('#Container form input').on('focus', function () {
    $("#my_ul").show();    
});

我怀疑这是最好的解决方案,但我在API文档中看不到任何可以实现此目的的内容。

答案 2 :(得分:0)

我对JQuery很新,但希望这是你想要的。 Demo