我有一个烦人的问题,我已经问了一些问题,现在我终于找到了它,我认为我接近一个解决方案,当然是在你的帮助下。
我有两个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")
});
}
答案 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 //
尝试纠正它,看看它是否有所作为。