Плагины JQuery не работают должным образом с ScriptManager в ASP.NET AJAX - PullRequest
1 голос
/ 04 февраля 2010

Я пытаюсь использовать плагин jQuery в элементе управления. Страницы, на которых может находиться элемент управления, используют частичные обратные передачи через UpdatePanel. Я включаю jQuery и плагин во время события PreRender элемента управления следующим образом:

ScriptManager.RegisterClientScriptInclude(
    this,
    this.GetType(),
    "jquery",
    "/_infrastructure/javascript/jquery.js"));

ScriptManager.RegisterClientScriptInclude(
    this,
    this.GetType(),
    "jquery.customPlugin",
    "/_infrastructure/javascript/jquery.customPlugin.js");

Плагин customPlugin jQuery устанавливает новую функцию с именем executeCustomPlugin. Позже в событии PreRender элемента управления я использую плагин для элемента элемента управления:

ScriptManager.RegisterStartupScript(
    this,
    this.GetType(),
    "customPlugin init script",
    @"$(document).ready(function() {
        $('#elementId').executeCustomPlugin();
    });",
    true);

Однако, когда он выполняется, я получаю ошибку JavaScript:

$('#elementId').executeCustomPlugin is not a function

Может показаться, что плагин jQuery вообще никогда не выполняется, но я настроил window.alerts в файле jQuery.customPlugin.js, и он действительно выполняется.

Есть ли способ решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2010

Оказывается, моя проблема была вызвана включением jQuery дважды. Первый экземпляр jQuery получал подключаемый модуль, но второй экземпляр jQuery получал вызов.

0 голосов
/ 04 февраля 2010

Возможное объяснение состоит в том, что ваш плагин не существует в DOM до выполнения кода ScriptManager.

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

...