Плагин jQuery недоступен после загрузки $ .getScript - PullRequest
0 голосов
/ 30 августа 2011

Я пытаюсь динамически загрузить плагин jQuery, вызывая «getScript» - но, похоже, он не распознает функцию инициализации плагина.

Однако, если я просто включу плагин, создав тег скрипта, плагин будет работать нормально. Я не могу использовать статический тег сценария, потому что конечный продукт загружается динамически через JavaScript, который помещается на страницу, которую я не могу контролировать.

Я продемонстрировал это ниже с помощью плагина под названием jScrollPane:

Первая голова - рабочая копия, а вторая - динамическая. При запуске динамического пути возникает ошибка, что $ ('# content'). JScrollPane () не является функцией!

   <head>
        <link type="text/css" href="http://jscrollpane.kelvinluck.com/style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/jquery.mousewheel.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/mwheelIntent.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/jquery.jscrollpane.min.js"></script>

    </head>



    <head>
        <link type="text/css" href="http://jscrollpane.kelvinluck.com/style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/jquery.mousewheel.js"></script>
        <script type="text/javascript" src="http://jscrollpane.kelvinluck.com/script/mwheelIntent.js"></script>
        <script type="text/javascript">
            function setScroll() {
                $(function () {
                    $('#content').jScrollPane();
                });
            }
        </script>
<script type="text/javascript">
        $.getScript("http://jscrollpane.kelvinluck.com/script/jquery.jscrollpane.min.js", setScroll());
    </script>
</head>

Единственное, что изменилось, это то, что jquery.jscrollpane.min.js загружается .getScript, а затем происходит фактическая инициализация в функции обратного вызова.

1 Ответ

1 голос
/ 30 августа 2011

Вы хотите передать setScroll функцию в getScript, но вместо этого вы фактически вызываете и передаете все, что возвращаетсяПотерять этот финал ().

...