2010-11-22 20 views
0

Bensürükle ve kaydırma komut

Yani, mousedown ait yPosition ve mouseUp kaydetmek ve bir div taşımak istediğiniz (iPad üzerinde benzer) jquery kullanarak bir kaydırma takvim komut dosyası yapmaya çalışıyorum buna göre. Fare pozisyonlarını iki değişken kullanarak kaydetmeyi denedim, bir tanesi mousedown olayı üzerine kaydedilecek ve bir fareup olayına kaydedilecek bir fare ...

ama şu anda problem, değişken değerinin taşınmamasıdır. farenin üstünde, mousedown'un değeri 0'a geri döndü. Değeri taşımak için ne yapardım?

Çok önceden teşekkürler!

kod

aşağıda verilmiştir: JavaScript

jQuery(document).ready(function(){ 
var yStart = 0; 
var yEnd = 0; 
$("#year").mousedown (function(e){ 
    var yStart = e.pageY; 
    $(".yStart").text (yStart +"ho"+ yEnd); 
    }).mouseup (function(e){ 
     var yEnd = e.pageY; 
     $(".yEnd").text (yStart +"ho"+ yEnd); 
    }); 
    if (yStart>yEnd) { 
    $("#year ul").animate({top:'-='+liHeight},"fast"); 
}; 

cevap

0

Kapsam fonksiyonu gereğidir. Mousedown işlevinde kullandığınız yStart, mouseup işlevinde kullandığınız yStart'tan farklıdır. Mouseup işlevinin yStart'ı daima sıfır olacaktır, çünkü betiğinizin başlangıcında, etkinlik bağlamasının dışında tanımlanmış olan bir Başlangıçtır. Mousedown işlevinizde yStart'ten önce "var" dan kurtulmanız gerekir, böylece bu adla yeni bir yerel değişken oluşturmak yerine, yeni değeri YStart olarak yazar ve diğer işlevde kullanılabilir. Aynı nedenden dolayı mouseup fonksiyonundaki "var" bildirisinden de kurtulmalısınız.

+0

Teşekkürler. Üzgünüm, bu konuda gerçekten yeniyim ... ama değişkeni bildireceğimi nereden biliyoruz? Çünkü ondan kurtulmak bana yStart ve yEnd var bildirilmemiş bir hata verir. – Stephanie

+0

nvm Şimdi anladım! Çok teşekkürler. – Stephanie

İlgili konular