2010-01-19 2 views
0

не может получить родительский идентификатор списка, в который элемент перетаскивается. Я могу легко получить идентификатор предметов и подумал, что могу получить от него родителя, но, похоже, не может его захватить!родительский элемент id

<li id="tag_772" class="tag tagAssigned ui-draggable" >adventurous briefs</li> 

- это ливка. Любая помощь очень ценится!

$("li.tag").draggable({ 
     connectToSortable: 'ul.assignedClass', 
     helper: 'clone', 
     stop: function(event, ui) { 
      projectTags('add',$(this)) 
     } 
    }); 

    function projectTags(fnc, tag){ 
     var tagID = $(tag).attr("id") 

     var parentID = $("#"+tagID).closest('ul').attr("id"); /// closest, parent & parents doesn't work? 

     $("#fdbk").prepend("<li>fnc:"+fnc+", tag:"+tagID+" < "+ $("#"+tagID).parents("ul:first").attr("id")+"</li>"); 

    } 

html;

<ul id="tags_978" class="assignedClass ui-sortable"> 

       <li id="existingTag_1029" class="tagAssigned">space </li> 


       <li id="existingTag_1030" class="tagAssigned">light </li> 


       <li id="existingTag_1031" class="tagAssigned">continuous landscape </li> 


       <li id="existingTag_1032" class="tagAssigned">structural glass </li> 
<li id="tag_772" class="tag tagAssigned ui-draggable" >adventurous briefs</li> 



     </ul> 
+0

Я запутался. Вы имели в виду только один перетаскиваемый элемент? Я пытаюсь дублировать ваш код и не вижу результата. – Matchu

+1

Вы можете изменить это: var tagID = $ (tag) .attr ("id") на var tagID = tag.attr ("id"); для эффективности –

+0

это не все страницы - просто то, что я использую, чтобы получить идентификатор li (и, надеюсь, родительский идентификатор) рабочая страница; http://rd.modernactivity.co.uk/youradmin/tagManager.php – v3nt

ответ

4

EDIT:

var parentID = $("#existingTag_"+tagID).parent('ul').attr("id"); 

попробовать это;)

+0

, что не работает! он должен - но это не так ... – v3nt

+0

Как он не работает? – Matchu

+0

Вы забыли про теги tags: $ ("# tag _" + tagID) .parent ('ul'). Attr ("id"); – dfens

1

Изменение

var tagID = $(tag).attr("id") 

в

var tagID = tag.attr("id"); 

Это позволяет избежать вложенного синтаксиса dom и добавляет точку с запятой в конце инструкции. EDIT: для ясности и в дополнение:

var parentID = $('#'+tagID).parent('ul').attr('id'); 
+0

все еще не определено - не уверен, что такое продолжается! – v3nt

0

ок - пошел длинный путь круглый ...

$(document).ready(function(){ 

    var selectedList; 

    $("#tagBrowser").resizable({ 
     grid: 20, 

    }); 

    $("#tagBrowser").draggable({ 


    }); 

    $("ul.assignedClass").sortable({ 
     revert: true, 
     items: 'li.tagAssigned', 
     stop: function(event, ui) { 

     }, 
     sort: function(event, ui) { 
     }, 
     change: function(event, ui) { 
      $("#fdbk").prepend("<li>change:"+$(this).attr("id")+" </li>"); 
      selectedList = $(this); 
     } 

    }); 

    $("li.tag").draggable({ 
     connectToSortable: 'ul.assignedClass', 
     helper: 'clone', 
     stop: function(event, ui) { 
      projectTags('add',$(this)) 
     } 
    }); 


    function projectTags(fnc, tag){ 
     var tagID = tag.attr("id"); 

     var parentID = selectedList.attr("id"); /// closest, parent & parents doesn't work? 

     $("#fdbk").prepend("<li>fnc:"+fnc+", tag:"+tagID+" < "+parentID+"</li>"); 

    } 



}); 
Смежные вопросы