Плагин jQuery недоступен после загрузки $.getScript

Я пытаюсь динамически загрузить плагин 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 ответ

Решение

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

Другие вопросы по тегам