2013-07-02 15 views
5

dışında mouseup algılar. CSS'yi (sınıfları kullanarak) bir mousedown (düğme basma) ve tıklama (mousedown + mouseup) ile değiştirdiğim birkaç düğme var. Sorun şu ki, eğer öğeye tıklarsanız, farenin imleci ateş etmeyecek şekilde elemanın dışındaki fare düğmesini serbest bırakmanızdır. Ayrıca, öğeye atanan sınıfları "sıfırlamak" için ve belgede de işe yaramıyor gibi bir genel "fare" olayını yakalamayı denedim.Ben mouseup (serbest fare düğmesi) mousedown olay tetiklenir olduğu elementin dışında ortaya çıktığında algılamak çalışıyorum mousedown elemanın

İşte
<div class="qbuttons"> 
<a id="qb_appointments" href="#" class="appointments"><div> 
Schedule a Service<br /> 
Appointment</div></a> 
</div> 

Ben elemanı ile keman kullanıyorum jQuery geçerli:: İşte

örnek bir HTML Ben MouseUp için farklı seçicileri denedim

var current_qbutton = ""; 

$('.qbuttons a').mousedown(function() { 
    current_qbutton = $(this).attr('id'); 
    $(this).addClass('active'); 
}); 

$('.qbuttons a').click(function() { 
    $(this).removeClass('active'); 
}); 

$('*').mouseup(function(event) { 
    event.stopPropagation(); 
    alert(current_qbutton); 
    if(current_qbutton != "") { 
     $('#' + current_qbutton).removeClass('active'); 
     current_qbutton = ""; 
    } 
}); 

- Belge , pencere, 'vücut *', 'html ' ve '' - Bence uyarısı olmaz çünkü mouseup, mousedown elemanın dışında fare düğmesini serbest bırakılması üzerine ateş görünmüyor görüyorum ne.

+0

, mousedown/mouseup olaylar, bu şekilde çalışmaz. İşte oynamak için bir keman -> http://jsfiddle.net/xQamz/ – adeneo

cevap

2

çalışmıyor bu (bir amaca hizmet görünmüyor) anchor elemana kaynaklandığını sebep. Sen a kaldırıp div veya span veya herhangi başka bir senin gibi ve sonra mouseup olay elemanının dışında ateş olabilir ile değiştirebilirsiniz.

Bu benim için çalışıyor gibi görünüyor.

var current_button; 
$('.test').on('mousedown', function(){ 
    current_button = this.id; 
}); 
$(document).on('mouseup', function(){ 
    alert(current_button); 
}); 
+0

Anchor öğesi gerçek bir URL’yi beğenecektir. Kod sadece orada bir yer tutucu olarak karma sembolü vardır. Dıştaki div.qbuttons, bir veya daha fazla bağlantı elemanını içerir. –

+0

Tamam @Joe şimdi burada yabancı bile var. JS Fiddle kodunuzu, yapmamı daha yakından andırmak için değiştirdim ve kodunuz hala çalışıyor. Kodumu, sizinkilere daha çok benzeyecek şekilde değiştirdim ve kodum hala çalışmıyor. Basit bir düğme efekti olması gerekiyor ve jQuery kullanıyorum çünkü Internet Explorer düzgün bir şekilde uygulamıyor: etkin sözde sınıf, benim için çalışmamı sağlayacak şekilde. Grr. İşte Şu anda yerinde ne var: http://jsfiddle.net/hairydogdigital/R6bq3/10/ –

0

http://jsfiddle.net/FXnsx/3/ ben de size mouseUp belgenin tamamını alıcı bu tür kullanabilir ve hedef bu ardından istediğiniz ne karar olup olmadığını içini kontrol anlasalardı.

$(document).mouseup(function (e) { 
var buttons = $("#btn1, #btn2"); 
if (!buttons.is(e.target) //clicking target is not the buttons 
{[desision 1] } 
else 
{ [desision 2] } 
}); 

Bu yardımı umarım. Eğer bunu yapmaya çalışıyoruz ne olursa olsun yapmak için başka bir yol anlamaya gerekecek böylece

Sen çözdüm
İlgili konular