jquery mobile listview - 要在<li>元素

时间:2015-05-26 14:03:41

标签: javascript android jquery-mobile

当我尝试在listview <li>项目上触发事件时,似乎不考虑整个元素,而只考虑其中的元素:

<ul data-role='listview' data-filter='true' data-filter-placeholder='Search Your Trucks..' data-inset='true' data-mini='true'>
    <li id=tg_1><a id=tg_2 href=#divdet>ONE</a> TEST </li>
    <li id=tg_2><a id=tg_2 href=#divdet>TWO</a> FOO </li>
</ul>

处理touchstart的函数(处理多个元素的touchstart):

document.addEventListener('touchstart', function (e) {
    switch(e.target.id) {
        case ...
            ..other elements...
            break;
        default:
            if(e.target.id.substr(0,3) == "tg_")
                $.ajax({
                     ... do request ....
                })
               $("#divdet").html(from_ajax_data);
            }
    }
}

问题在于它正常工作,但仅在点击<li>元素的特定部分时才有效。每次点击<li>时,我都希望它能够正常工作。

概念是使用href我可以使用幻灯片等效果移动到应用的下一页,而触摸事件我将数据加载到div中。

1 个答案:

答案 0 :(得分:1)

您也可以使用脚本转移到下一页:

http://api.jquerymobile.com/pagecontainer/#method-change

<ul data-role='listview' data-filter='true' data-filter-placeholder='Search Your Trucks..' data-inset='true' data-mini='true'>
    <li id="tg_1"><a id="tg_1a" href="#">ONE</a> TEST </li>
    <li id="tg_2"><a id="tg_2a" href="#">TWO</a> FOO </li>
</ul>

$(document).on("click", "li", function(e){        
    var id = $(this).prop("id");
    if(id && id.substr(0,3) == "tg_") {
        var from_ajax_data = "from ajax html"; //ajax call here
        $("#divdet").html(from_ajax_data);
        $( ":mobile-pagecontainer" ).pagecontainer( "change", "#divdet", { transition: "slide" } );
     }    
});
  

正在使用 DEMO