Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > jQuery изменять только определенные ul


Автор: Zlo 9.4.2016, 14:21
Есть код который из lu делает наподобие Combox:
Код

$(function(){
  var close = function() {
    $("ul").each(function() {
      var $thisUl = $(this);    
      if($thisUl.find("li > a.click").length == 0) {
        var $li = $(document.createElement('li')).append($(document.createElement('a')).attr({
          "class": "click selectable visible",
          "href": "#"
        }).text("Select"));
        $thisUl.append($li);
      }
      else {
        $thisUl.find("li > a.click").addClass("visible");
      }
      $thisUl.find("li:has(> a:not(.click))").hide();
      $thisUl.find("li > a.click").show();
    });
  };

  var sentinel = function() {
    $("ul").each(function(){
      var $thisUl = $(this);
      $($thisUl).find("li > a").click(function(event){
        if($(event.target).is('ul li a.visible')) {
          event.preventDefault();
          $thisUl.find("li:has(> a:not(.click))").show();
          $thisUl.find("li > a.selectable").hide();
          $thisUl.find("li > a.click").removeClass("visible");
          
        }
        else {
          $thisUl.find("li").each(function(){
            $(this).find("a").removeClass("click selectable visible");
            $(this).find("a.selectable").remove();
          });
          $(this).addClass("click visible");
        close();
        }
      });
    });
  };

  var reconnaissance = function() {
    $(document).click(function(event) {
      if(!$(event.target).is('ul li a')) {
        close();
      }
    });
  };

  close();
  sentinel();
  reconnaissance();
});


Вот код ul
Код

<ul value=>
    <li class="label label-success" value='app:option1' id='delbutton-1'><a  style="color : white; text-decoration: none; cursor: pointer;">option1</a></li>
    <li class="label label-warning" value='app:option2' id='delbutton-1'><a  style="color : white; text-decoration: none; cursor: pointer;" >option2</a></li>
    <li class="label label-info" value='app:option3' id='delbutton-1'><a  class="click"  style="color : white; text-decoration: none; cursor: pointer;">option3</a></li>
    <li class="label label-danger" value='app:option4' id='delbutton-1'><a style="color : white; text-decoration: none; cursor: pointer;">option4</a></li>
</ul>


Дело в том что у меня есть еще меню которое тоже построено с помощью lu li. Как бы заставить скрипт отличать lu которые нужно схлопывать и те которые не нужно? Подозреваю что нужно как-то через class  в lu но как именно нужно изменить скрипт не знаю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)