2010-01-18 107 views
1

我遇到了一個惱人的問題,我已經提出了一些問題,現在我終於找到了它,並且我認爲我已經接近解決方案,當然還有您的幫助。爲什麼不執行此功能?

我有兩個JavaScript文件,都使用jQuery,但只有其中一個正在運行。其中一個以「$(document).ready(function(){..」)開頭,工作正常,另一個不工作以「function pageLoad(){..」開頭。

原因爲什麼我需要pageLoad事件,是因爲它甚至在異步postBacks上觸發,但它甚至沒有加載到非異步postback上?

我猜在代碼中存在一些問題,它只要它是通過互聯網我的網絡主機的服務器上運行工作得很好我的本地機器上,但是,一切都在JavaScript的文件只是不工作

代碼:

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") 

    }); 

    } 

回答

1

由於您使用ASP.NET,您可能不需要使用ScriptManager定義對「pageLoad」的調用。它應該自動使用ASP.NET AJAX進行觸發。關於何時使用$(document).ready()vs pageLoad(),http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/有一個很好的寫法。

它還提到您可以將您的「點擊」和「懸停」事件代碼移動到LiveQuery addition to jQuery 1.3的$(document).ready()代碼中。

$(document.ready()函數在post backs上第二次運行似乎很奇怪,你使用的是ASP.NET AJAX嗎?或者你可以提供更多示例代碼來說明你的回發是如何工作的?

0

這聽起來像分析過程中一個JavaScript錯誤,因此您的包括與頁面加載()在它的執行。你什麼時候加載這個頁面,你在瀏覽器中的任何JavaScript錯誤?

我注意到你」在此行上重新丟失了分號:

var sendPM_pxToBottomWhenAutoScrolling = 140 // 

嘗試糾正它,看看它是否有所作爲。

+0

這並沒有把戲:( 無論如何,這不會像在本地運行一樣的錯誤在線行爲? – 2010-01-19 14:53:03