window.onload olayında çalıştırmak istediğim iki işlevi var, ancak yalnızca son işlev şu ana kadar çalışıyor gibi görünüyor. Bir işlev bir görüntü kaydırıcısıdır, diğeri ise bir google e-tablo hücresinden veri alır. İki Javascript işlevini bir pencereye birleştirir. Çalışmıyor
function fun1() { //image slider
var ul;
var li_items;
var imageNumber;
var imageWidth;
var prev, next;
var currentPostion = 0;
var currentImage = 0;
function init() {
ul = document.getElementById('image_slider');
li_items = ul.children;
imageNumber = li_items.length;
imageWidth = li_items[0].children[0].clientWidth;
ul.style.width = parseInt(imageWidth * imageNumber) + 'px';
prev = document.getElementById("prev");
next = document.getElementById("next");
prev.onclick = function() {
onClickPrev();
};
next.onclick = function() {
onClickNext();
};
}
function animate(opts) {
var start = new Date;
var id = setInterval(function() {
var timePassed = new Date - start;
var progress = timePassed/opts.duration;
if (progress > 1) {
progress = 1;
}
var delta = opts.delta(progress);
opts.step(delta);
if (progress == 1) {
clearInterval(id);
opts.callback();
}
}, opts.delay || 17);
}
function slideTo(imageToGo) {
var direction;
var numOfImageToGo = Math.abs(imageToGo - currentImage);
direction = currentImage > imageToGo ? 1 : -1;
currentPostion = -1 * currentImage * imageWidth;
var opts = {
duration: 1000,
delta: function(p) {
return p;
},
step: function(delta) {
ul.style.left = parseInt(currentPostion + direction * delta * imageWidth * numOfImageToGo) + 'px';
},
callback: function() {
currentImage = imageToGo;
}
};
animate(opts);
}
function onClickPrev() {
if (currentImage == 0) {
slideTo(imageNumber - 1);
} else {
slideTo(currentImage - 1);
}
}
function onClickNext() {
if (currentImage == imageNumber - 1) {
slideTo(0);
} else {
slideTo(currentImage + 1);
}
}
}
function fun2() {
// Google spreadsheet js
google.load('visualization', '1', {
callback: function() {
var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1sA7M5kG6Xo8YScD1Df38PIA_G0bvhGRdqoExXg0KJTs/gviz/tq?tqx=out:html&tq?gid=0&headers=0&range=A1:C');
query.send(displayData);
}
});
function displayData(response) {
numRows = response.getDataTable().getValue(0, 0);
document.getElementById('data').innerHTML = numRows;
}
}
var addFunctionOnWindowLoad = function(callback) {
if (window.addEventListener) {
window.addEventListener('load', callback, false);
} else {
window.attachEvent('onload', callback);
}
}
addFunctionOnWindowLoad(fun1);
addFunctionOnWindowLoad(fun2);
Bu
ben link denedim cevabı ancak yanlış nereye gidiyorum anlamaya gibi olamaz.
Ben işlevlerin her basit 1-gömlekleri, yani alert ("fonk1") ve alert ("FUNC2") olsaydı iki uyarılar gösterilen olsun istiyorum o sana koydu. Kod başarısız olursa, işlevlerden biriyle ilgili bir sorun olduğunu söyler. Konsolun ne demesi gerekiyor? Sorun, deneyimlerimden hemen hemen orada kesinlikle tanımlanabilir olacaktır. – enhzflep
Merhaba, konsol herhangi bir hata göstermiyor – manicdav
Johnyy2 - Ben sadece ilk satır olarak her işleve kod attım. 'Uyarı (' fun1 '), 'bunlardan biri için' ve diğeri için 'alert (' fun2 ')' kodunu kullandım. Her iki uyarı da gösterildi. Daha sonra "blank.html: 180 Uyarılmış ReferenceError: google tanımlı değil" diyen bir hata oluştu. Bu, beklediğiniz kodu kullandığım için beklenecek. Bundan, fun1 işlevinizin içinde bir sorun olduğunu söylemek doğru olur. :) – enhzflep