【问题标题】:jquery-sortable - how to get the value of parent and child alternatively like (Title1_orange, Title1_pink...)?jquery-sortable - 如何交替获取父和子的值(Title1_orange,Title1_pink ...)?
【发布时间】:2011-07-30 05:24:08
【问题描述】:

当我对孩子进行排序时,我得到了父母和孩子的价值,但它会像(title1orangepinkyellowgreen,title1orangepinkyellowgreen,title1orangepinkyellowgreen,title1orangepinkyellowgreen),但我必须这样打印(Title1_orange,title_pink...)

var addPositions = function() {
    $('.droptrue, .droptrue1').each(function() {
        var position = 0;
        $(this).children().each(function() {
            $(this).data('position', position);
            position++;
        });
    });
};

$(document).ready(function() {
var  treeList = "";
treeList = "<ul id=\"createTree\" class=\"droptrue1 mt1\">";
for(var key in jsonObj){
  //alert("key: " + key + ", value: " + jsonObj[key])
    for (var skey in jsonObj[key]) {
        treeList +=  ("<li class=\"listTree\" id=\"asdf\">"+skey +"<ul class=\"droptrue mt\">");
        for (var sskey in jsonObj[key][skey]){
            for (var ssskey in jsonObj[key][skey][sskey]){
                treeList +=  ("<li class=\"innerList\">"+jsonObj[key][skey][sskey][ssskey]+"</li>");
            }
        }       
        treeList +=  "</ul></li>";
    }
}
treeList += "</ul>";
$('#tree').append(treeList); 
addPositions();
$(".droptrue").sortable({
      connectWith: "ul.mt",
      dropOnEmpty: true,
      stop: function(event, ui) {
         var order = [];
         ui.item.closest('ul').children('li').each(function() {
         order.push($(this).data('position'));
         var c = $(this).text();    
         var z = $(this).parents().eq(1).text();
         alert(z);
         $("#cl").append(z+"<br />");
       });
     }
  });

这里小提琴链接:http://jsfiddle.net/thilakar/VKWeC/

谢谢

【问题讨论】:

  • 我可以告诉你为什么会这样。它上升到父 li 项目。 li 项目虽然在其中包含该列表。所以它将包括一切。你可以在那里创建一个跨度或其他东西,这样你就可以只达到那个跨度吗?

标签: jquery html jquery-ui-sortable jquery-ui-draggable jquery-ui-droppable


【解决方案1】:

就像我上面建议的那样,也许尝试添加一个跨度,因为该标题基本上是列表兄弟“ul”部分。

http://jsfiddle.net/VKWeC/1/

您也可以使用 prev() 代替兄弟姐妹。这真的取决于你的 html 有多复杂。还有find()。

http://jsfiddle.net/VKWeC/2/

【讨论】:

    猜你喜欢
    • 2020-10-20
    • 2015-08-16
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多