1

これをデバッグするのに十分な JavaScript の経験がありません。どんな助けでも大歓迎です。

以下のコードでは、

    switch($el_title.innerHTML)

それとも私のものですか

    .animate( style , 400, function() {

正しくない発言。それは両方かもしれません。

$el_title.innerHTML が正しいかどうかわかりません。対応するHTMLは次のようになります

    <ul>
      <li>
        <a href="images/Appetizers.jpg">About</a>
    ...

オブジェクトになるようにスタイル変数を作成しました style = {}; それがオブジェクト変数を作成する方法だと思います。そのスタイル変数を .animate に渡すことは機能していないようです。

完全なコードは次のとおりです。

      initEventsSubMenu = function() {
        $menuItems.each(function(i) {
          var $item       = $(this), // the <li>
          $el_title       = $item.children('a:first'),
          el_image        = $el_title.attr('href'),
          $sub_menu       = $item.find('.ac_subitem'),
          $ac_close       = $sub_menu.find('.ac_close'),
          style           = {};

      switch($el_title.innerHTML)
        {
          case 'About':
                       style = {height:'400px',marginTop:'-200px'};
                       break;
          case 'Menu':
                      style = {height:'200px',marginTop:'-150px'};
                      break;
          case 'Take-Out':
                      style = {height:'500px',marginTop:'-250px'};
                      break;
          case 'Gallery':
                      style = {height:'200px',marginTop:'-150px'};
                      break;
          case 'Contact':
                      style = {height:'400px',marginTop:'-200px'};
                      break;
          default:
                      style = {height:'400px',marginTop:'-200px'};
        }

        $el_title.bind('click.Menu', function(e) {
           $.when(toggleMenuItems('down')).done(function(){
              openSubMenu($item, $sub_menu, el_image);
           });
        return false;
        });

        /* closes the submenu */
        $ac_close.bind('click.Menu', function(e) {
          closeSubMenu($sub_menu);
        return false;
        });
      });
    },
        openSubMenu     = function($item, $sub_menu, el_image, style) {
          $sub_menu.stop()
          .animate( style , 400, function() {

              /*
              .animate({
                 height          : '200px',
                 marginTop       : '-150px'
               }, 400, function() { 
              */

また、下部にあるコメント付きのコードが機能することも知っています。そして、閉じ括弧は問題ないと確信しています。

助けてくれてありがとう。

4

1 に答える 1

0

$el_titlejQuery オブジェクトです.innerHTMLが、DOM 要素のプロパティです。$el_title.text()の代わりに使用する必要があり$el_title.innerHTMLます。

変化する:

openSubMenu($item, $sub_menu, el_image);

に:

openSubMenu($item, $sub_menu, el_image, スタイル);

于 2013-06-07T01:38:53.107 に答える