【问题标题】:JQuery mobile dynamic split button list viewjQuery移动动态拆分按钮列表视图
【发布时间】:2016-12-07 08:33:42
【问题描述】:

我是 jquery mobile 的新手。我正在尝试做一个动态拆分按钮列表视图。 第一个按钮工作正常,这意味着单击它时,项目列表名称将传递给“gotoQuantity(this)”函数。但是,第二个按钮不起作用。那就是列表视图名称没有被传递给“deleteItemFromList(this)”函数。

请问我该如何解决这个问题?

HTML:

<ul data-role="listview" data-filter="true" data-input="#myFilter" data-autodividers="true" data-inset="true" id = itemsList data-split-icon="delete">
</ul>

脚本:

function loadMainList() {
    //loads main items list
    $("#itemsList").empty();
    for (var key in mainList) {
        itemToList = key;

        $('#itemsList').append('<li><a onclick="gotoQuantity(this)">' + itemToList + '</a><a onclick="deleteItemFromList(this)">' + itemToList + '</a></li>');
    };
    $("#itemsList").listview('refresh');
}

function gotoQuantity(obj) {
    alert($(obj).text());
}

function deleteItemFromList(obj) {   //deletes item from main list
    alert($("#itemsList").text());
}

【问题讨论】:

  • 不要使用onclick事件处理程序,在标签中添加gotoQuantity类并使用$(document).on("click", ".gotoQuantity", function() { alert("click");}
  • 我的问题是需要将
  • 名称的参数传递给函数 deleteItemFromList(this)。它适用于 gotoQuantity 函数。
  • 在事件处理程序中使用属性或$(this).parent()
  • 标签: javascript jquery html listview jquery-mobile


    【解决方案1】:

    当 jQuery Mobile 增强列表时,拆分按钮文本被删除,然后作为锚点的标题属性添加。所以你的快速修复将是

    function deleteItemFromList(obj) {   //deletes item from main list
        alert($(obj).prop('title'));
    }
    

    但是,我会从 cmets 中采用 SGA 的方法,并将项目 id 作为 LI 的数据属性,然后使用事件委托来创建处理程序并检索 id:

    $("#itemsList").empty();
    for (var i=0; i<mainList.length; i++) {
        itemToList = mainList[i];
        $('#itemsList').append('<li data-id="' + itemToList + '"><a href="#" class="goQuant">' + itemToList + '</a><a href="#" class="deleteItem">' + itemToList + '</a></li>');
    };
    $("#itemsList").listview('refresh');
    
    $("#itemsList").on("click", ".goQuant", function(){
      alert($(this).parent("li").jqmData("id"));
    });
    $("#itemsList").on("click", ".deleteItem", function(){
      alert($(this).parent("li").jqmData("id"));
    });
    

    DEMO

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签