我有這個非常簡單的問題:我的代碼太重複了。它可以工作,但我相信它可能會更乾淨,但我不知道從哪裏開始。重構代碼的提示:非常重複的代碼
我想學習更好的工作,我真的很想有人幫助我。
這裏是一個非常重複我的代碼的2位(我所做的一切我自己):
$(document).ready(function(){
// Setup your Lazy Line element.
// see README file for more settings
$('#drawing1').lazylinepainter({
'svgData' : dr1,
'strokeWidth':1.2,
'strokeColor':'#65615a',
'onComplete' : function(){
}
})
$('#drawing2').lazylinepainter({
'svgData' : dr2,
'strokeWidth':1.2,
'strokeColor':'#65615a',
'onComplete' : function(){
}
})
$('#drawing3').lazylinepainter({
'svgData' : dr3,
'strokeWidth':1.2,
'strokeColor':'#65615a',
'onComplete' : function(){
}
})
$('#drawing4').lazylinepainter({
'svgData' : dr4,
'strokeWidth':1.2,
'strokeColor':'#65615a',
'onComplete' : function(){
}
})
$('#drawing5').lazylinepainter({
'svgData' : dr5,
'strokeWidth':1.2,
'strokeColor':'#65615a',
'onComplete' : function(){
}
})
// Paint your Lazy Line, that easy!
})
})(jQuery);
代碼的第二部分:
var eventsFiredDr1 = 0;
var drawing1 = function() {
if (eventsFiredDr1 == 0) {
$('#drawing1').lazylinepainter('paint');
eventsFiredDr1++; // <-- now equals 1, won't fire again until reload
}
}
var eventsFiredDr2 = 0;
var drawing2 = function() {
if (eventsFiredDr2 == 0) {
$('#drawing2').lazylinepainter('paint');
eventsFiredDr2++; // <-- now equals 1, won't fire again until reload
}
}
var eventsFiredDr3 = 0;
var drawing3 = function() {
if (eventsFiredDr3 == 0) {
$('#drawing3').lazylinepainter('paint');
eventsFiredDr3++; // <-- now equals 1, won't fire again until reload
}
}
var eventsFiredDr4 = 0;
var drawing4 = function() {
if (eventsFiredDr4 == 0) {
$('#drawing4').lazylinepainter('paint');
eventsFiredDr4++; // <-- now equals 1, won't fire again until reload
}
}
var drawing5 = function() {
if (eventsFiredDr5 == 0) {
$('#drawing5').lazylinepainter('paint');
eventsFiredDr5++; // <-- now equals 1, won't fire again until reload
}
}
$(window).resize(function() {
if ($(window).width() < 820) {
$("svg").hide()
$(".fallback").show()
$("#drawing2").css("height", "auto")
}
});
if ($(window).width() > 820) {
$(".fallback").hide()
$(window).scrollStopped(function(){
if ($("#drawing1").is(":within-viewport")) {
drawing1()
}
if ($("#drawing2").is(":within-viewport")) {
drawing2()
}
if ($("#drawing3").is(":within-viewport")) {
drawing3()
}
if ($("#drawing4").is(":within-viewport")) {
drawing4()
}
if ($("#drawing5").is(":within-viewport")) {
drawing5()
}
});
(我知道我應該把DOM元素的變量,但我計劃在做代碼時重構代碼。)
我的第一個猜測是創建一個數組,但..不知道如何在我的代碼中使用它。 (我是一個初學者)
我想說這是更適合http://codereview.stackexchange.com/ –
選擇器只是字符串,你可以連接值'$(「#drawing」+ i)' – Jasen
@ClaudioRedi不知道關於這個存在。謝謝 ! – Naemy