jquery fileTree удалить класс, расширенный от детей - PullRequest
1 голос
/ 05 июля 2011

Я использую плагин FileTree jquery из http://labs.abeautifulsite.net/projects/js/jquery/fileTree/demo/

Я пытаюсь исправить одну ошибку

Я потерял весь день, пытаясь что-то другое, но я новичок в JavaScriptи мне не повезло

Я немного изменил код, но проблема та же, даже с оригинальным кодом

, чтобы увидеть ошибку перейдите по ссылке выше из первого примера выберите "документы""then" excel docs "затем" documents "снова элемент li, содержащий" excel docs ", имеет класс" расширенный ", даже если родительский" документы "закрыт

как я могу удалить класс из всех дочерних элементов, еслиродитель закрыт?

это моя последняя версия кода

if(jQuery) (function($){</p> <pre><code>$.extend($.fn, { fileTree: function(o, h, dire) { // Defaults if( !o ) var o = {}; if( o.root == undefined ) o.root = '/'; if( o.script == undefined ) o.script = 'jqueryFileTree.php'; if( o.folderEvent == undefined ) o.folderEvent = 'click'; if( o.expandSpeed == undefined ) o.expandSpeed= 500; if( o.collapseSpeed == undefined ) o.collapseSpeed= 500; if( o.expandEasing == undefined ) o.expandEasing = null; if( o.collapseEasing == undefined ) o.collapseEasing = null; if( o.multiFolder == undefined ) o.multiFolder = true; if( o.loadMessage == undefined ) o.loadMessage = 'Loading...'; if(o.expanded == undefined) o.expanded = ''; $(this).each( function() { function showTree(c, t) { $(c).addClass('wait'); $(".jqueryFileTree.start").remove(); $.post(o.script, { dir: t }, function(data) { $(c).find('.start').html(''); $(c).removeClass('wait').append(data); if( o.root == t ) $(c).find('UL:hidden').show(); else $(c).find('UL:hidden').slideDown({ duration: o.expandSpeed, easing: o.expandEasing }); bindTree(c); if (o.expanded != null) { $(c).find('.directory.collapsed').each(function (i, f) { if ((o.expanded).match($(f).children().attr('rel'))) { showTree($(f), escape($(f).children().attr('rel').match(/.*\//))); $(f).removeClass('collapsed').addClass('expanded'); }; }); }; },"html"); }; function bindTree(t) { $(t).find('LI A').bind(o.folderEvent, function() { if( $(this).parent().hasClass('directory') ) { if( $(this).parent().hasClass('collapsed') ) { // Expand dire($(this).attr('rel')); if( !o.multiFolder ) { $(this).parent().parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing }); $(this).parent().parent().find('LI.directory').removeClass('expanded').addClass('collapsed'); } $(this).parent().find('UL').remove(); // cleanup showTree( $(this).parent(), escape($(this).attr('rel').match( /.*\// )) ); $(this).parent().removeClass('collapsed').addClass('expanded'); } else { // Collapse $(this).parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing }); $(this).parent().removeClass('expanded').addClass('collapsed'); } } else { h($(this).attr('rel')); } return false; }); if( o.folderEvent.toLowerCase != 'click' ) $(t).find('LI A').bind('click', function() { return false; }); } $(this).html('<ul class="jqueryFileTree start"><li class="wait">' + o.loadMessage + '<li></ul>'); showTree( $(this), escape(o.root) ); }); } });

}) (jQuery);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...