0

I have a several scrollable menus at one page. There is a jQuery function which handles all those menus in "menu per menu" fashion, after I type this (hardcoded as it is) in a .js file:

    $(function(){
             Scrollable(".menu_wrapper1");
             Scrollable(".menu_wrapper2");

..and so on, all up to... 

       Scrollable(".menu_wrapper9");

HTML is simple as this..

    <div class="menu_wrapper1">Menu data</div>
    <div class="menu_wrapper2">Menu data 2</div>

and so on, up to 9 again.

Anyway, there is some possibility in near future for those menus to be more then 9 at one page or with different numbers at the end (like "menu_wrapper17") for example), so any chance for those different numbers of classes to be recognized and applied to this function by jQuery itself?

Something like Scrollable(".menu_wrapper[*]"); or similar I guess so function can be applied to any number?

Thx!

EDIT: Please, beware that every class has its own controls given by function.

4

3 に答える 3

3

1 つの方法は、 などの別のクラスを追加しscrollable_wrapper、それを選択することです。

<div class="scrollable_wrapper menu_wrapper2">...</div>
Scrollable('.scrollable_wrapper');
于 2013-09-06T17:39:53.403 に答える
2

これを試して

$("div[class^='menu_wrapper']").each(function () {
Scrollable("."+$(this).attr('class'));
});

これにより、クラス名が「menuwarpper」で始まる各 div が取得され、そのクラス名をパラメーターとして Scrollable() が呼び出されます。

これが役に立てば幸いです、ありがとう

于 2013-09-06T17:50:08.117 に答える
0

ここに多くのソリューションがあります:

1) すべての menu_wrapper をラップします。

  <div id="big_menu_wrapper ">
    <div class="menu_wrapper1">Menu data</div>
    <div class="menu_wrapper2">Menu data 2</div>
  </div>

で選択Scrollable("#big_menu_wrapper > div")

2) すべての menu_wrapper に同じクラスを追加します。

  <div class="menu_wrapper menu_wrapper1">Menu data</div>
  <div class="menu_wrapper menu_wrapper2">Menu data 2</div>

で選択Scrollable(".menu_wrapper")

3) JavaScript 関数をリファクタリングする

于 2013-09-06T17:41:45.043 に答える