Сделать JQuery скрипт глобальным - PullRequest
1 голос
/ 04 августа 2009

У меня есть 5 различных скриптов на странице, которые все делают одинаково:

<script language="javascript">
        $(document).ready(function(){
            $(".hideshow-news").hide();
            $(".roll-li-news").click(function(){
                if ($(".hideshow-news").is(":hidden")) {
                    $(".hideshow-news").slideDown("slow");
                    $(".roll-li-news").removeClass('inactive');
                }
                else {
                    $(".hideshow-news").slideUp("slow");
                    $(".roll-li-news").addClass('inactive');
                }
            });
        });
    </script>
    <script language="javascript">
        $(document).ready(function(){
            $(".hideshow-users").hide();
            $(".roll-li-users").click(function(){
                if ($(".hideshow-users").is(":hidden")) {
                    $(".hideshow-users").slideDown("slow");
                    $(".roll-li-users").removeClass('inactive');
                }
                else {
                    $(".hideshow-users").slideUp("slow");
                    $(".roll-li-users").addClass('inactive');
                }
            });
        });
    </script>
    <script language="javascript">
        $(document).ready(function(){
            $('.hideshow-pages').hide();
            $('.roll-li-pages').click(function(){
                if ($(".hideshow-pages").is(":hidden")) {
                    $(".hideshow-pages").slideDown("slow");
                    $(".roll-li-pages").removeClass('inactive');
                }
                else {
                    $(".hideshow-pages").slideUp("slow");
                    $(".roll-li-pages").addClass('inactive');
                    }
            });
        });
    </script>

Есть ли способ сделать эти 5 сценариев глобальными и объединить их в один сценарий? Я делал разные уроки, так как мое меню открывалось во многих местах.

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 04 августа 2009

Да, удалите последние четыре тега скрипта и используйте этот селектор в первом:

".hideshow-news, .hideshow-users, .hideshow-pages"
0 голосов
/ 04 августа 2009

Ниже приведено быстрое решение вашей проблемы. Удалите все теги и содержимое скрипта и просто добавьте это в свой документ, желательно в раздел <head></head>.

<script language="javascript">
    $(document).ready(function(){

      var arr = {"news", "pages", "users"};
      var x;
      for (x in arr){
        $(".hideshow-"+x).hide();

        $(".roll-li-"+x).click(function(){
          if ($(".hideshow-"+x).is(":hidden")) {
            $(".hideshow-"+x).slideDown("slow");
            $(".roll-li-"+x).removeClass('inactive');
          }else {
            $(".hideshow-"+x).slideUp("slow");
            $(".roll-li-"+x).addClass('inactive');
          }
        });
      }
    });
</script>

Это должно делать то, что вам нужно, хотя я не проверял это. Если у вас есть другие места, где вы используете это с такой же структурой, измените массив следующим образом:

var arr = {"news", "pages", "users", "members", "others"};

но, как говорит Болдевин, вам нужно больше разбираться в основах.

Надеюсь, это поможет, Синан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...