0

私は自分のウェブサイトで2つのアコーディオンを使用しています.1つはJqueryUIで、もう1つはここにあります:

http://www.adipalaz.com/experiments/jquery/nested_accordion.html

ここで問題となるのは、両方が.accordionを使用してアコーディオンを初期化することです。この場合、1つだけが機能します。

この関数の命名の問題を修正する方法はありますか?

Jquery-UIを初期化するために、私はこれを使用しています:

$( ".jquery-ui-accordion" ).accordion();    

もう一方(ネストされたアコーディオン)を初期化するために、私はこれを使用しています:

$("html").addClass("js");
$.fn.accordion.defaults.container = false; 
$(function() {
  $("#acc3").accordion({initShow : "#current"});
  $("#acc1").accordion({
      el: ".h", 
      head: "h4, h5", 
      next: "div", 
      initShow : "div.outer:eq(1)"
  });
  $("#acc2").accordion({
      obj: "div", 
      wrapper: "div", 
      el: ".h", 
      head: "h4, h5", 
      next: "div", 
      showMethod: "slideFadeDown",
      hideMethod: "slideFadeUp",
      initShow : "div.shown",
      elToWrap: "sup, img"
    });
  $("html").removeClass("js");
});

}); 

どちらも.accordion()関数を使用していることに注意してください。

4

3 に答える 3

2

このコードは、jQuery UI javascript includeの直後で、他のアコーディオンjavascriptincludeの前に配置します。

jQuery.fn.myCustomAccordion = jQuery.fn.accordion;
delete $.fn.accordion;

そして、両方のアコーディオンを使用できます。例:

// jQuery accordion
$( ".jquery-ui-accordion" ).myCustomAccordion(); 

// "Other accordion"
$("#acc3").accordion({initShow : "#current"});
...
于 2013-01-23T13:47:35.760 に答える
1

それらが両方とも名前が付けられ.accordionている場合は、CSSクラス名がセレクターとして使用されていることを示していますよね?したがってid、2つを区別するために、各クラス名の横に一意のものを使用することをお勧めし.accordionます。しかし、コード例がなければ、これ以上支援することは困難です。

于 2013-01-23T13:32:44.490 に答える
0

関数名を参照している場合は、袖をまくり上げて、ソースコードファイルの1つで関数の名前を変更するだけです。

または、同じことを行う2つのプラグインを使用できませんでした...

更新:私はあなたが今何をしようとしているのかについてより良い考えを持っています。私はまったく同じことのためにjquery.collapsible-menus.jsを使用しました。divではなくリストを使用しますが、簡単に実行できます。

http://tommcfarlin.com/collapsible-menus-for-jquery-1-1/

于 2013-01-23T13:36:29.667 に答える