Bir pop-up olarak bir <div>
açmak için bir hashed bağlantısının onclick
olayını kullanıyorum. Ancak , ortadaki tıklama onclick
olayını tetiklemez, ancak bağlantının yalnızca href
öznitelik değerini alır ve URL'yi yeni bir sayfaya yükler. Açılır pencereyi <div>
açmak için ortadaki tıklamayı nasıl kullanabilirim?Orta tıklama kullanarak onclick olayı tetikleme
cevap
beggs 'cevabı doğru, ancak orta tıklamanın varsayılan eylemini önlemek istediğiniz gibi geliyor. Bu durumda, olayın varsayılan işlemi duracaktır
$("#foo").on('click', function(e) {
if(e.which == 2) {
e.preventDefault();
alert("middle button");
}
});
preventDefault() şunlardır.
Unutmayın ki .live'nin yerine kullanılmadı ve '.on' lehine kaldırıldı. – Neal
, firefox –
içinde çalışmıyor FF'de çalışmak için şunu kullanın: var evt = e || window.event; –
Sen tıklandığı fare düğmesini tanımlamak için
kullanabilirsiniz.
Değiştirilen durumu gösteren düğmeyi gösteren bir tamsayı değeri döndürür.
'klik' standart için- 0 orta düğme için, genellikle sol düğme
- 1, genellikle sağ düğme için
- 2 tekerlek tıklatın genellikle bu kongre o
Not sağ tıklayın Internet Explorer'da izlenmez: Ayrıntılar için bkz. QuirksMode.
Düğmelerin sırası, işaretleme aygıtının nasıl yapılandırıldığına bağlı olarak farklı olabilir. ve düğme:
Ayrıca fare düğmesi olmuştur tıklamışsa out bulmak için iki özellik vardır Which mouse button has been clicked?okuyun. Bu özelliklerin her zaman tıklama etkinliğinde çalışmadığını lütfen unutmayın . güvenli bir şekilde, bir fare düğmesini tespit ederseniz, farenizi veya fare kapağını kullanın.
okunmasını öneririm jQuery source - line 2756 - 'if (!' De tarayıcılar arasında standartlaştırılmış olduğundan 'event.which' kullanmanızı öneririm event.which && event.button) event.which = (event.button & 1? 1: (event.button & 2? 3: (event.button & 4? 2: 0))); –
@RussCam Ancak, MouseEvent.which, herhangi bir özellikte tanımlanmadı, ancak MouseEvent.düğmesi, DOM L2 Olaylarında tanımlanır. – Oriol
@Oriol, ancak farklı tarayıcı satıcıları arasında farklı şekilde uygulandı. OP soruyu jQuery ile etiketledi, bu yüzden 'event.which' kullanmayı önerdim ama 'MouseEvent.which' resmi belirtimin bir parçası olmadığını ayrıntılandırmalıydım. Quirksmode bağlantısı için –
jQuery 1, bu durumda 2, 3. İstediğiniz sağa olarak soldan tıklama butonu id verir etkinliğine yaptığı bir .which
niteliğini sağlar 2.
Kullanımı:
$("#foo").live('click', function(e) {
if(e.which == 2) {
alert("middle button");
}
});
Adamantiumun cevabı da çalışacak ama o notları gibi IE için dikkat etmek gerekir:
$("#foo").live('click', function(e) {
if((!$.browser.msie && e.button == 1) || ($.browser.msie && e.button == 2)) {
alert("middle button");
}
});
Ayrıcahatırlamaközniteliği 0-dizinli değil, .which
gibi 1 dizine eklenmiş.
mozilla tarayıcısının işlevselliğini geçersiz kılabilir !! örn. Sol tıklama ile açılır bir pencereyi açar .... fakat orta tıklama için bir açılır pencere açılmaz ve açılır pencerenin açılmadığı yeni bir sekme açılır .. bu yüzden bir orta tıklamayı geçersiz kılmak istiyorum mozilla'nın işlevselliği .... –
Mozilla, tüm pop-up'ları yeni bir pencerede açmak yerine yeni bir sekmede açmak için bir ayara sahip. Eğer kullanıcı bu seçeneği etkinleştirdiyse, o zaman * yapabileceğiniz bir şey yok. Eğer bu olmuyorsa sorun sayfasına bir kod veya link gönderebilir misiniz? – beggs
FF'de tıklama olayıyla çalışmaz. – l00k
uygun yöntem .live
jQuery dan kaldırılan ve daha sonra kaldırıldı olarak, .on
kullanmaktır:
$("#foo").on('click', function(e) {
if(e.which == 2) {
e.preventDefault();
alert("middle button");
}
});
Yoksa "canlı" hissi gibi ve #foo
isterseniz üzerine sayfanızda değil belge başlangıç:
$(document).on('click', '#foo', function(e) {
if(e.which == 2) {
e.preventDefault();
alert("middle button");
}
});
Biliyorum partiye geç kaldım, ancak ortadaki tıklamayla baş etmekte sorun yaşayanlar için, etkinliği delege edip etmediğinizi kontrol edin. Delegasyon durumunda, click
olayı patlamaz. Karşılaştırma:
Bu orta tıklamalar için çalışır:
$('a').on('click', function(){
console.log('middle click');
});
Bu orta tıklamalar için çalışmaz:
$('div').on('click', 'a', function(){
console.log('middle click');
});
Hala kullanarak orta tıklayın izlemeniz gerekirse olay delegasyonu, ilgili jQuery ticket numaralı belgede belirtildiği gibi tek yol, mousedown
veya 01 kullanmaktır. Bunun yerine. böylece gibi:
Bu yetkilendirilen orta tıklamalar için çalışır:
$('div').on('mouseup', 'a', function(){
console.log('middle click');
});
Bu soru biraz eski, ama bir çözüm buldu:
$(window).on('mousedown', function(e) {
if(e.which == 2) {
e.preventDefault();
}
});
Krom değil ateş fare tekerleği genellikle
FF ve Chrome
WorkBen olayı "tıklama" insanlar çözüm yerine alternatifler sunduğunda nefret ediyorlar, ancak çözümler zaten sağlandığından, kendi kuralımı kıracağım.
Orta tıklama özelliğinin devre dışı bırakıldığı web siteleri, gerçekten çok sıkıntı veriyor. Genel olarak orta tıklama yapıyorum çünkü yeni içeriğin yeni bir sekmede açılmasını ve mevcut içeriğin engellenmemiş bir görünümünü elde etmek istiyorum. Orta tıklama işlevini tek başına bırakabileceğiniz ve alakalı içeriğin tıklatılan öğenizin HREF özelliği aracılığıyla kullanılabilir hale gelebileceği her zaman, yapmanız gereken şeyin bu olduğuna kesinlikle inanıyorum.
- 1. innerHTML değişkenlerini onClick olayı
- 2. düğmeyi onclick olayı olmadan geçirme
- 3. Tıkanıklık durumunda Checkbox ciltleme tetikleme olayı çalışmıyor
- 4. Bootstrap onClick düğmesi olayı
- 5. JQuery tıklama olayı
- 6. ckeditor tıklama olayı çalışmıyor
- 7. jQuery ateşleme tıklama olayı bir tıklama olmadan
- 8. Tıklama Olayı Dinleyicisi'ni Pushpin'e Ekleme
- 9. Broşür açılırken tıklama olayı bağlanılamıyor
- 10. Köprü OnClick olayı kodun arkasında
- 11. Köpürme olmadan özel bir jQuery olayı tetikleme
- 12. Bir öğeye tıklama olayı ekleme?
- 13. javascript kullanarak kimliği olmayan html etiketlerine onclick olayı nasıl ekleyebilirim?
- 14. Bir tinymce penceresinde tetikleme keyup olayı
- 15. JavaScript kullanarak ‘isTrusted = true’ tıklama olayı nasıl tetiklenir?
- 16. MapBox SDK kullanarak işaretleyici tıklama olayı nasıl elde edilir?
- 17. önle ana öğenin bir olayı tetikleme elemanları iç içe
- 18. anchor etiketindeki onclick olayı IE'de çalışmıyor
- 19. Kamerayı başlatmak istiyorum, ListView'da kullanılan onClick olayı
- 20. Ultra basit Chrome Uzantısı, onclick olayı
- 21. KMLLayer Yer İşaretleri ve İşaretleyicilerine tıklama olayı ekleme
- 22. UItextView ve arka plandaki klavyede tıklama olayı
- 23. Highcharts gösterge öğesi tıklama olayı nasıl değiştirilir?
- 24. Etkin olmayan bir pencereye tıklama olayı gönderme
- 25. Gönderme düğmesi için olay tetikleme sırası
- 26. Köşeli 2 Boş şablonla tıklama olayı nasıl eklenir?
- 27. Prototip ile bir olay tetikleme
- 28. xamarin formlarında etiket üzerinde tıklama olayı dinamik olarak nasıl oluşturulur
- 29. For döngüsü için tetikleme onchange olayı yalnızca bir kez çalışır
- 30. Bir sınıfta bir şey değiştiğinde bir olayı tetikleme
Orta tıklama tıklama onclick olayını tetiklemediğinde, sorunun nasıl çözüldüğünü hala anlamıyorum. –
@ TomášZato Tarayıcılar, bir tıklama ile bir 'tıklama' olayını ateşlemez, ancak bir 'fare' olayını tetikleyebilirler. Daha sonra javascript çerçevesi bunu karıştırmak için bir 'tıklatma' eylemine bağlayabilir. Http://www.unixpapa.com/js/mouse.html – rds