为什么这个功能没有执行?

时间:2010-01-18 23:54:09

标签: asp.net javascript jquery asp.net-ajax

我有一个烦人的问题,我已经问了一些问题,现在我终于找到了它,我认为我接近一个解决方案,当然是在你的帮助下。

我有两个JavaScript文件,都使用jQuery,但只有一个正在运行。一个工作开始于“$(document).ready(function(){..”并且工作得很好。另一个无法工作的开始于“function pageLoad(){..”。

我之所以需要pageLoad事件,是因为它甚至在异步postBacks上都被触发了,但它甚至没有加载到非异步回发上? ..

我想代码中有一些问题导致它出错,但它在我的本地机器上运行得很好,但是只要它通过互联网在我的web主机服务器上运行,那个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")

    });

    }

2 个答案:

答案 0 :(得分: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将“click”和“hover”事件代码移动到$(document).ready()代码。

$(document.ready()函数在post backs上第二次运行似乎很奇怪。您使用的是ASP.NET AJAX吗?或者您可以从回发的工作原理中提供更多示例代码吗?

答案 1 :(得分:0)

在解析过程中听起来像是一个JavaScript错误,导致你的include包含pageLoad()。加载此页面时,浏览器中是否有任何JavaScript错误?

我注意到你在这一行上遗漏了一个分号:

var sendPM_pxToBottomWhenAutoScrolling = 140 //

尝试纠正它,看看它是否有所作为。