1

ここで見つけたドロップダウンがあります:http://tympanus.net/codrops/2012/10/04/custom-drop-down-list-styling/

HTML:

 <ul class="dropdown" tabindex="1">
    <li><a href="/user/profile">profile</a></li>
    <li><a href="/user/logout">log out</a></li>
</ul>

js のこの時点で:

    function DropDown(el) {
            this.dd = el;
            this.placeholder = this.dd.children('span');
            this.opts = this.dd.find('ul.dropdown > li');
            this.val = '';
            this.index = -1;
            this.initEvents();
        }

        DropDown.prototype = {
            initEvents : function() {
                var obj = this;

                obj.dd.on('click', function(event){
                    $(this).toggleClass('active');
                    return false;
                });

                obj.opts.on('click',function(){
                    var opt = $(this);
                    obj.val = opt.text();
                    obj.index = opt.index();
                    obj.placeholder.text('profile: ' + obj.val);
                });
            },
            getValue : function() {
                return this.val;
            },
            getIndex : function() {
                return this.index;
            }
        }

        $(function() {

            var dd = new DropDown( $('#dd') );

            $(document).click(function() {
                // all dropdowns
                $('.wrapper-dropdown-1').removeClass('active');
            });

        });

ドロップダウン項目が選択されている場合、テキストは、希望するページに移動するのではなく、親の ul 選択に配置されます。この単純なドロップダウンですべてが正常に機能します。リンクを選択したテキストに置き換える部分を無効にするだけです。アンカータグが通常どおり機能するようにしたいだけです。

エラー メッセージ:

try
84      {
85          if ( ! class_exists($prefix.$controller))
86          {
87              throw new HTTP_Exception_404('The requested URL :uri was not     found on this server.',
88                                                      array(':uri' => $request->uri()));
89          }
90 
91          // Load the controller using reflection
92          $class = new ReflectionClass($prefix.$controller);
4

1 に答える 1

0

この部品をこれに交換するだけで...

obj.opts.on('click',function(){
                var opt = $(this);
                obj.val = opt.text();
                window.location.href=opt.data('link');
            });

そして、すべてli'sのデータ属性をhref/ リンクで指定します...

つまり...

     <li data="http://newpage.html">New Page</li>

liあなたの要素がそれらの中に要素を持っていない限り、<a>おそらくこのようなことをすることができます...

 obj.opts.on('click',function(){
                var opt = $(this);
                link = opt.closest('a').attr('href');
                window.location.href=link;
            });
于 2013-07-08T19:53:51.177 に答える