Pergunta

Eu estou tentando usar um plugin jQuery em um controle. As páginas que o controle pode estar em uso postbacks parciais através de um UpdatePanel. I incluem jQuery eo plugin durante o evento PreRender do controle como esta:

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

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

O customPlugin plugin jQuery configura uma nova função chamada "executeCustomPlugin". Mais tarde, o evento PreRender do controle, eu uso o plugin em um elemento no controle:

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

No entanto, quando ele é executado, eu recebo o erro JavaScript:

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

Parece como se o plugin jQuery nunca é executado em tudo, mas eu configurar window.alerts no arquivo jQuery.customPlugin.js, e é de fato sendo executado.

Existe uma maneira de corrigir este problema?

Foi útil?

Solução 2

Acontece que meu problema foi causado por incluindo jQuery duas vezes. A primeira instância jQuery estava recebendo o plugin aplicado, mas a segunda instância jQuery estava recebendo a chamada.

Outras dicas

Uma possível explicação é que o seu plugin não existe no DOM antes da execução do código ScriptManager.

Ver a fonte da página depois de ser processada para o navegador e garantir que tag script do seu plug-in personalizado é processado antes o javascript que está registrado com seu gerente de script.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top