aminghaderi
یک شنبه 18 تیر 1391, 08:01 صبح
با سلام خدمت دوستان .
کلاسی با JavaScript نوشتم که درون اون از کد های jQuery استفاده کردم .
کلاس به خوبی کار می کنه ولی اگر قرار باشه تمیز تر ور خواناتر بنویسم ، کار نمی کند؟!
مشکلش هم این هست که کد های جی کوئری دیر لود می شود و متغیر های جاوااسکریپتی کلاس ، مقدار null می گیرند و اصلاحا undefined نمایش داده می شود و باعث Stop اسکریپت می شود!
این نمونه از کلاس فعلی من هست :(حالتی که بدون خطا کار می کند)
var MyClass = new function() {
var StrVariable = "";
var IntVariable = 0;
this.A = function AA() { }
this.B = function BB() {
jQuery(function() {
$.ajax({
type: "POST",
url: "A.ashx/GET",
data: "{ID:'1'}",
contentType: "application/json",
dataType: "json",
success: function(msg) {
alert(msg);
//
//ادامه این متد رو فقط می تونم اینجا بنویسم
//تا مفسر خطا ندهد
//
},
error: function() { alert("در سرور خطایی رخ داده است!"); }
});
});
}
}
//Use...
MyClass.B();
این هم نظمی هست که مد نظرم هست ولی خطا می گیرد :
var MyClass = new function() {
var StrVariable = "";
var IntVariable = 0;
this.A = function AA() { }
this.B = function BB() {
jQuery(function() {
$.ajax({
type: "POST",
url: "A.ashx/GET",
data: "{ID:'1'}",
contentType: "application/json",
dataType: "json",
success: function(msg) {
alert(msg);
StrVariable = msg;
},
error: function() { alert("در سرور خطایی رخ داده است!"); }
});
});
//
//می خوام بتونم ادامه متد رو اینجا بنویسم
//که با خطا مواجه میشم.
//
}
}
//Use...
MyClass.B();
ایراد این کد :
همون اول کد های جاوااسکریپت اجرا می شه و وقتی به کد جی کوئری می رسه ، چون فایل هنوز بار نشده ، از اون رد می شه و به این ترتیب متغیر StrVariable بی مقدار می ماند و در ادامه فرایند کلاس که اینجا قرار نداردم ، دچار مشکل می شود و کل اسکریپت Stop مشود.
لطفا راهنمایی بفرمایید ، چطوری کاری کنم که ، کل کلاس مجبور باشه ، صبر کنه تا فایل jQuery لود بشود و بعد اجرا بشه؟؟؟
کلاسی با JavaScript نوشتم که درون اون از کد های jQuery استفاده کردم .
کلاس به خوبی کار می کنه ولی اگر قرار باشه تمیز تر ور خواناتر بنویسم ، کار نمی کند؟!
مشکلش هم این هست که کد های جی کوئری دیر لود می شود و متغیر های جاوااسکریپتی کلاس ، مقدار null می گیرند و اصلاحا undefined نمایش داده می شود و باعث Stop اسکریپت می شود!
این نمونه از کلاس فعلی من هست :(حالتی که بدون خطا کار می کند)
var MyClass = new function() {
var StrVariable = "";
var IntVariable = 0;
this.A = function AA() { }
this.B = function BB() {
jQuery(function() {
$.ajax({
type: "POST",
url: "A.ashx/GET",
data: "{ID:'1'}",
contentType: "application/json",
dataType: "json",
success: function(msg) {
alert(msg);
//
//ادامه این متد رو فقط می تونم اینجا بنویسم
//تا مفسر خطا ندهد
//
},
error: function() { alert("در سرور خطایی رخ داده است!"); }
});
});
}
}
//Use...
MyClass.B();
این هم نظمی هست که مد نظرم هست ولی خطا می گیرد :
var MyClass = new function() {
var StrVariable = "";
var IntVariable = 0;
this.A = function AA() { }
this.B = function BB() {
jQuery(function() {
$.ajax({
type: "POST",
url: "A.ashx/GET",
data: "{ID:'1'}",
contentType: "application/json",
dataType: "json",
success: function(msg) {
alert(msg);
StrVariable = msg;
},
error: function() { alert("در سرور خطایی رخ داده است!"); }
});
});
//
//می خوام بتونم ادامه متد رو اینجا بنویسم
//که با خطا مواجه میشم.
//
}
}
//Use...
MyClass.B();
ایراد این کد :
همون اول کد های جاوااسکریپت اجرا می شه و وقتی به کد جی کوئری می رسه ، چون فایل هنوز بار نشده ، از اون رد می شه و به این ترتیب متغیر StrVariable بی مقدار می ماند و در ادامه فرایند کلاس که اینجا قرار نداردم ، دچار مشکل می شود و کل اسکریپت Stop مشود.
لطفا راهنمایی بفرمایید ، چطوری کاری کنم که ، کل کلاس مجبور باشه ، صبر کنه تا فایل jQuery لود بشود و بعد اجرا بشه؟؟؟