Domanda

Sto cercando di utilizzare un plugin jQuery in un controllo. Le pagine che il controllo può essere sul postback parziali applicazioni mediante un UpdatePanel. Includo jQuery e il plugin durante l'evento PreRender del controllo in questo modo:

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

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

Il plugin jQuery customPlugin imposta una nuova funzione chiamata "executeCustomPlugin". Più tardi, nel caso PreRender del controllo, io uso il plugin su un elemento sul controllo:

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

Tuttavia, quando si esegue, ottengo l'errore JavaScript:

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

Sembrerebbe come se il plugin jQuery non viene mai eseguito a tutti, ma ho istituito window.alerts nel file jQuery.customPlugin.js, ed è davvero in esecuzione.

C'è un modo per risolvere questo problema?

È stato utile?

Soluzione 2

Si scopre che il mio problema è stato causato da includendo jQuery due volte. La prima istanza di jQuery è stato sempre applicato il plugin, ma la seconda istanza jQuery stava ricevendo la chiamata.

Altri suggerimenti

Una possibile spiegazione è che il plugin non esiste nel DOM prima dell'esecuzione del codice ScriptManager.

Visualizza il sorgente della pagina dopo che è stato reso al browser e garantire che tag script del vostro plugin personalizzato è resa prima il javascript che è registrato con il tuo script manager.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top