2014-04-01 8 views
0

У меня есть раскрывающееся меню, которое показывает 2 ссылки, одну в мою галерею изображений и другую в галерею видео, но когда я нахожусь в поле зрения, кроме моего index.ctp, выпадающее меню вообще не открывается. Если я поместил dropdown.js из дистрибутива исходного кода и включил его в макет, выпадающие списки не работают в index.ctp, но они работают с другими видами. Кроме того, во время поиска в google я нашел этот thread, который позволил мне использовать его во всех представлениях, но меню открывается только один раз, в чем проблема с этим?Выпадающее меню не работает должным образом

Я использую Twitter Bootstrap 3.1.1 и CakePHP 2.4.4

Layout

 <li class="dropdown"> 
      <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">Serviços <b class="caret"></b></a> 
      <ul class="dropdown-menu"> 
       <li><?php echo $this->Html->link('Música', array('controller'=>'services', 'action'=>'Musica'))?></li> 
       <li><?php echo $this->Html->link('Animação Temática', array('controller'=>'services', 'action'=>'AnimacaoTematica'))?></li> 
       <li><?php echo $this->Html->link('Promoção', array('controller'=>'services', 'action'=>'Promocao'))?></li> 
       <li><?php echo $this->Html->link('Staff', array('controller'=>'services', 'action'=>'Staff'))?></li> 
       <li><?php echo $this->Html->link('Aluguer', array('controller'=>'services', 'action'=>'Aluguer'))?></li> 
      </ul> 
     </li> 

Макет головы

<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <title><?php echo $title_for_layout;//titulo dinamico da página?></title> 
    <?php 
    echo $this->Html->meta('icon'); 
    //echo $this->Html->css('cake.generic'); 
    echo $this->fetch('meta'); 
    echo $this->fetch('css'); 

    echo $this->Html->script('modernizr-2.6.2-respond-1.1.0.min'); 
    echo $this->fetch('script'); 
    echo $this->element('fancybox_links'); 
    echo $this->Html->script('jquery-1.11.0'); 
    echo $this->Html->script('main'); 
    echo $this->element('fancybox_links'); 
    echo $this->Html->css('http://fancyapps.com/fancybox/source/jquery.fancybox.css?v=2.1.5'); 
    echo $this->Html->script('http://fancyapps.com/fancybox/source/jquery.fancybox.pack.js?v=2.1.5');   
    echo $this->Html->css('bootstrap-theme.min'); 
    echo $this->Html->css('main'); 
    echo $this->Html->css('bootstrap.min'); 
    echo $this->Html->css('bootstrap'); 
    echo $this->Html->script('bootstrap'); 
    echo $this->Html->script('bootstrap.min'); 
    echo $this->Html->script('dropdown'); 
    ?> 
    <meta name="description" content=""> 
    <meta name="viewport" content="width=device-width"> 
    <style> 
     body { 
      padding-top: 50px; 
      padding-bottom: 20px; 
     } 
    </style> 
    <script type="text/javascript"> 
     $(function(){ 
      $(".dropdown-toggle").click(function(){ 
       $(this).dropdown('toggle'); 
      }); 
     });  
    </script> 
    <script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"> 
      $(document).ready(function() { 
       $(".fancybox3").fancybox(e){ 
        openEffect : 'none', 
        closeEffect : 'none', 
        helpers : { 
         title : { 
          type : 'float' 
         } 
        } 
        e.preventDefault; 
       }); 
      }); 
    </script> 
    <!--<script src="js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>--> 
</head> 
+0

У вас есть что-нибудь еще в home.ctp? –

+0

Я скорректировал имя вида, is index.ctp. В этом представлении у меня есть слайд-шоу, в котором я пытаюсь заставить его работать, и простой текст. – SunT

+0

исправить ошибку js, если у нее есть –

ответ

1

После того, как вы очистили папку js и переустановили fancybox с here, а затем плагин this, выпадающие списки начали работать так, как должны.

Leyout Руководитель

<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <title><?php echo $title_for_layout;//titulo dinamico da página?></title> 
    <?php 
    echo $this->Html->meta('icon'); 
    //echo $this->Html->css('cake.generic'); 
    echo $this->fetch('meta'); 
    echo $this->fetch('css'); 
    echo $this->Html->script('modernizr-2.6.2-respond-1.1.0.min'); 
    echo $this->fetch('script'); 
    echo $this->Html->script('jquery-1.11.0.min'); 
    echo $this->Html->script('main'); 
    echo $this->Html->css('main'); 

    echo $this->Html->css('bootstrap-theme.min'); 
    echo $this->Html->css('bootstrap.min'); 
    echo $this->Html->css('bootstrap'); 

    echo $this->Html->script('bootstrap.min'); 
    echo $this->Html->script('bootstrap'); 
    echo $this->Html->script('dropdown'); 
    echo $this->Html->script('collapse'); 
    ?> 
    <meta name="description" content=""> 
    <meta name="viewport" content="width=device-width"> 
    <style> 
     body { 
      padding-top: 50px; 
      padding-bottom: 20px; 
     } 
    </style> 
    <script type="text/javascript"> 
     $(function(){ 
      $(".dropdown-toggle").click(function(){ 
       $(this).dropdown('toggle'); 
      }); 
     });  
    </script> 
    <!--<script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"> 
      $(document).ready(function() { 
       $(".fancybox3").fancybox(e){ 
        openEffect : 'none', 
        closeEffect : 'none', 
        helpers : { 
         title : { 
          type : 'float' 
         } 
        } 
        e.preventDefault; 
       }); 
      }); 
    </script> --> 
    </head> 
1

Я думаю, что вы пропустили, чтобы загрузить bootstrap и jquery на других страницах.

Вам необходимо включить bootstrap и jquery в ваш общий файл или в заголовок.

Также проверьте наличие confliction если вы использовали другие framework/library.

+0

У меня проблема с загрузкой 'jquery', но связана только с fancybox. Другие 'jquery' и' bootstrap' включены. – SunT

+0

Все включено в заголовок макета, все это есть. – SunT

+0

Почему вы добавили 'bootstrap' дважды? Вы включили 'bootstrap' и' bootstrap.min' оба. Также проверьте 'console' на' errors'. –

Смежные вопросы