cemohsen
سه شنبه 23 آذر 1389, 10:52 صبح
سلام
من یک پلاگین ساده به صورت زیر نوشتم که در حالی زیر کار می کنه و هیچ مشکلی نداره
(می بینید که چقدر به دور از آداب برنامه نویسی نوشته شده)
(function($) {
jQuery.fn.TypeWriter = function(options) {
var defaultOptions = {
newsDelay: 5000,
typerDelay: 30
};
var setting = $.extend(defaultOptions, options);
return this.each(function() {
createTicker(this.id, setting.newsDelay, setting.typerDelay);
});
};
})(jQuery);
TickerId = "";
NewsDelay = 0;
TypeDelay = 0;
function createTicker(id, nDelay, tDelay) {
TickerId = id;
NewsDelay = nDelay;
TypeDelay = tDelay;
var tickerLIs = $("#" + TickerId).children();
tickerItems = new Array();
tickerLIs.each(function(el) {
tickerItems.push(jQuery(this).html());
}); i = 0; rotateTicker();
}
function rotateTicker() {
if (i == tickerItems.length) i = 0;
tickerText = tickerItems[i]; c = 0; typetext(); setTimeout("rotateTicker()", NewsDelay); i++;
}
var isInTag = false;
function typetext() {
var thisChar = tickerText.substr(c, 1);
if (thisChar == '<') { isInTag = true; }
if (thisChar == '>') { isInTag = false; }
$("#" + TickerId).html(" " + tickerText.substr(0, c++));
if (c < tickerText.length + 1)
if (isInTag) {
typetext();
} else { setTimeout("typetext()", TypeDelay); }
else {
c = 1; tickerText = "";
}
}
حالا وقتی می خوام اون قسمت قرمز رنگ رو ببرم توی خود متد پلاگین تا بتونم به متغیر های پلاگین هم دسترسی داشته باشم (مثل خیلی از پلاگین هایی که نوشته می شه) خطا می ده که
There is no source code available for the current location.
و کد کار نمی کنه!!!
این هم کدی که خطا داره
(function($) {
jQuery.fn.TypeWriter = function(options) {
var defaultOptions = {
newsDelay: 5000,
typerDelay: 30
};
var setting = $.extend(defaultOptions, options);
var isInTag = false;
return this.each(function() {
var tickerLIs = $("#" + this.id).children();
tickerItems = new Array();
tickerLIs.each(function(el) {
tickerItems.push(jQuery(this).html());
});
i = 0; rotateTicker(this.id);
});//End Each
function rotateTicker(id) {
if (i == tickerItems.length) i = 0;
tickerText = tickerItems[i]; c = 0; typetext(id); setTimeout("rotateTicker(" + id + ")", setting.typerDelay); i++;
} //End rotateTicker
function typetext(id) {
var thisChar = tickerText.substr(c, 1);
if (thisChar == '<') { isInTag = true; }
if (thisChar == '>') { isInTag = false; }
$("#" + id).html(" " + tickerText.substr(0, c++));
if (c < tickerText.length + 1)
if (isInTag) {
typetext(id);
} else { setTimeout("typetext(" + id + ")", setting.typerDelay); }
else {
c = 1; tickerText = "";
}
} //End typetext
};
})(jQuery);
}
کسی می دونه مشکل چیه ؟؟؟
من یک پلاگین ساده به صورت زیر نوشتم که در حالی زیر کار می کنه و هیچ مشکلی نداره
(می بینید که چقدر به دور از آداب برنامه نویسی نوشته شده)
(function($) {
jQuery.fn.TypeWriter = function(options) {
var defaultOptions = {
newsDelay: 5000,
typerDelay: 30
};
var setting = $.extend(defaultOptions, options);
return this.each(function() {
createTicker(this.id, setting.newsDelay, setting.typerDelay);
});
};
})(jQuery);
TickerId = "";
NewsDelay = 0;
TypeDelay = 0;
function createTicker(id, nDelay, tDelay) {
TickerId = id;
NewsDelay = nDelay;
TypeDelay = tDelay;
var tickerLIs = $("#" + TickerId).children();
tickerItems = new Array();
tickerLIs.each(function(el) {
tickerItems.push(jQuery(this).html());
}); i = 0; rotateTicker();
}
function rotateTicker() {
if (i == tickerItems.length) i = 0;
tickerText = tickerItems[i]; c = 0; typetext(); setTimeout("rotateTicker()", NewsDelay); i++;
}
var isInTag = false;
function typetext() {
var thisChar = tickerText.substr(c, 1);
if (thisChar == '<') { isInTag = true; }
if (thisChar == '>') { isInTag = false; }
$("#" + TickerId).html(" " + tickerText.substr(0, c++));
if (c < tickerText.length + 1)
if (isInTag) {
typetext();
} else { setTimeout("typetext()", TypeDelay); }
else {
c = 1; tickerText = "";
}
}
حالا وقتی می خوام اون قسمت قرمز رنگ رو ببرم توی خود متد پلاگین تا بتونم به متغیر های پلاگین هم دسترسی داشته باشم (مثل خیلی از پلاگین هایی که نوشته می شه) خطا می ده که
There is no source code available for the current location.
و کد کار نمی کنه!!!
این هم کدی که خطا داره
(function($) {
jQuery.fn.TypeWriter = function(options) {
var defaultOptions = {
newsDelay: 5000,
typerDelay: 30
};
var setting = $.extend(defaultOptions, options);
var isInTag = false;
return this.each(function() {
var tickerLIs = $("#" + this.id).children();
tickerItems = new Array();
tickerLIs.each(function(el) {
tickerItems.push(jQuery(this).html());
});
i = 0; rotateTicker(this.id);
});//End Each
function rotateTicker(id) {
if (i == tickerItems.length) i = 0;
tickerText = tickerItems[i]; c = 0; typetext(id); setTimeout("rotateTicker(" + id + ")", setting.typerDelay); i++;
} //End rotateTicker
function typetext(id) {
var thisChar = tickerText.substr(c, 1);
if (thisChar == '<') { isInTag = true; }
if (thisChar == '>') { isInTag = false; }
$("#" + id).html(" " + tickerText.substr(0, c++));
if (c < tickerText.length + 1)
if (isInTag) {
typetext(id);
} else { setTimeout("typetext(" + id + ")", setting.typerDelay); }
else {
c = 1; tickerText = "";
}
} //End typetext
};
})(jQuery);
}
کسی می دونه مشکل چیه ؟؟؟