JQuery Plugins não funciona corretamente com o ScriptManager do ASP.NET AJAX
-
18-09-2019 - |
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?
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.