2010-01-18 6 views
1

J'ai un problème ennuyeux auquel j'ai déjà posé quelques questions, maintenant je l'ai finalement retrouvé, et je pense que je suis proche d'une solution, avec votre aide bien sûr.Pourquoi cette fonction n'est-elle pas en cours d'exécution?

J'ai deux fichiers JavaScript, tous deux utilisant jQuery, mais un seul d'entre eux est en cours d'exécution. Celui qui travaille commence par "$ (document) .ready (function() {.." et fonctionne très bien L'autre qui ne fonctionne pas commence par "function pageLoad() {..".

La raison Pourquoi ai-je besoin de l'événement pageLoad, car il est déclenché même sur les postBacks asynchrones, mais il n'est même pas chargé sur les postbacks non asynchrones?

Je suppose qu'il y a un problème dans le code qui le rend insupportable, mais il fonctionne très bien sur ma machine locale, mais dès qu'il est exécuté sur mon serveur web hôte via l'Internet, tout dans ce fichier javascript est tout simplement ne fonctionne pas

. code:

function pageLoad(){ 
    alert("this does not even show :("); 
    //var's to be set 
    var sendPM_pxToBottomWhenAutoScrolling = 140 // 

    $(".NewConversationTrigger").click(function() { 
    $("#pm_area_OpenSamtaleID").val(this.id); 
    $("#pm_area_TriggerOpenSamtale").click(); 
    }); 

    //Auto Scroll system for PM 
    if ($(".nyPM_SubmitButton").attr("disabled") == true) { 
     $(".scrollToBottom").attr({ scrollTop: $(".scrollToBottom").attr("scrollHeight") }); 
    }else{ 
     $(".scrollToBottom").animate({ scrollTop: ($(".scrollToBottom").attr("scrollHeight") - $(".scrollToBottom").height() - sendPM_pxToBottomWhenAutoScrolling) }, 1000); 
    }//Auto Scroll system for PM 



    //Reciver PM's 
    $(".SentPM:not(:last-child)").hover(function() { 
    $(this).children(".PM_Options").show(); 
    }, function() { 
    $(this).children(".PM_Options").hide(); 
    });//Reciver PM's 
    $(".RecivedPM").hover(function() { 
    $(this).children(".PM_Options").show(); 
    }, function() { 
    $(this).children(".PM_Options").hide(); 
    });//Reciver PM's 








    //TypeWatch 
    $("#userlist_area_filterText").typeWatch({ highlight:true, callback:finished }); 
     function finished(txt) { $("#userlist_area_filterSubmit").click() }; 

    $(".updateSamtaleVindue").click(function(){ 
    $("#pm_area_OpenSamtaleID").val(this.id); 
    $("#pm_area_TriggerOpenSamtale").click(); 

    }); 

    $(".nyPM_SubmitButton").click(function(){ 
    $("#pm_area_SendMessageText").val($(".nyPM_TextArea").val()); 
    $("#pm_area_TriggerSendMessage").click(); 
    $(".nyPM_SubmitButton").attr("disabled","disabled"); $(".nyPM_SubmitButton").val("Din Besked er Sendt"); 
    $(".nyPM_TextArea").attr("readonly", true); $(".nyPM_TextArea").addClass("SentPM_FakeBox") 

    }); 

    } 

Répondre

1

Depuis que vous utilisez ASP.NET, vous n'avez probablement pas besoin de définir l'appel à "pageLoad" avec le ScriptManager. Il devrait automatiquement se déclencher avec ASP.NET AJAX. Il y a une bonne idée de quand utiliser $ (document) .ready() vs pageLoad(), http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/.

Il mentionne également que vous pouvez probablement déplacer votre code d'événement "click" et "hover" sur votre code $ (document) .ready() avec le LiveQuery addition to jQuery 1.3.

Il semble vraiment étrange que la fonction $ (document.ready() s'exécute une seconde fois sur les postbacks. Utilisez-vous ASP.NET AJAX? Ou pourriez-vous donner un peu plus d'exemple de code sur le fonctionnement de votre publication? ?

0

cela ressemble à une erreur JavaScript lors de l'analyse syntaxique a empêché include avec pageLoad() en lui d'exécuter. avez-vous des erreurs JavaScript dans votre navigateur lorsque vous chargez cette page?

je remarquai que vous » Il manque un point-virgule sur cette ligne:

var sendPM_pxToBottomWhenAutoScrolling = 140 // 

Essayez de corriger cela et voyez si cela fait une différence.

+0

Cela n'a pas fait l'affaire :( Quoi qu'il en soit, une erreur comme celle-ci ne se passerait-elle pas de la même manière en ligne que lors d'une exécution locale? –

Questions connexes