2012-01-11 40 views
5

Son zamanlarda, html kodlarında herhangi bir hrefs veya onclick'i olmayan tıklanabilir nesneler içeren pek çok site görüyorum. Ayrıca href, onclick, onmousedown, onmouseup özelliklerini uyarmayı denedim, ancak sadece "undefined" yazıyordu. Bu sayfalarda çok fazla karmaşık javascript olduğunu fark ettim. Özellikledüğmeleri

bir sitede beni kelimeler: http://www.sharenator.com/Boy_Teaches_His_Puppy_How_to_Eat/#/doggy_01_Boy_Teaches_His_Puppy_How_to_Eat-0.html

Aslında oldukça iyi. Düğmeler de seçilemez. Düğmelerin kimlikleri nextBtn, nextBtn2, prevBtn ve prevBtn2'dir.

Bunu nasıl uygulayacağı konusunda bir fikri olan var mı?

+1

Ben sadece StackOverflow topluluğuna welcome, kayıtlı görebilirsiniz @karunchadhary :) cevaplar biri sorunuza yanıt, doğru cevap olarak işaretleyin. – Tehnix

cevap

4

jQuery'nin .click (geri arama) işlevini (http://api.jquery.com/click/) veya .delegate (selector, 'click', geri arama) (jQuery 1.7'den önce) ve .on'u ('click', selector, callback) kullanabilirsiniz (jQuery 1.7). +) veya .bind ('click', geri arama).

<button id="clickable">Click Me!!</button> 

Sonra jQuery ile düğmeye hedef: .live() artık kullanım dışı olduğunu :)

gibi öylesine işaret için Anthony Grist için

Teşekkür

$("#clickable").click(function(){ 
    // Send user to this link 
    location.href = "http://www.takemehere.com"; 
}); 

Sen verdiğim bağlantıda ve jQuery ana sayfasında daha fazla okuyabilirsiniz.

GÜNCELLEME

gerçek sayfa ile bu işler:

$('#prevBtn').mousedown (onBackward); 

çağrıyı onMouseDown edersiniz: ok tuşları

function onBackward() { 
    showImg (currentId - 1); 
} 

kullanım:

$(document).keyup (function (event) { 
    var activeElement = document.activeElement.tagName; 
    if (activeElement == 'INPUT' || activeElement == 'TEXTAREA') return; 
    //alert (window.location.pathname); 

    if (event.keyCode == 39) onForward(); 
    else 
    if (event.keyCode == 37) onBackward(); 
}); 
Slayt gösterisinin kaynak kodu için bkz. http://www.sharenator.com/js/slideshow.js.
+0

'.live() 'kaldırıldı, bunun yerine (önceki jQuery 1.7)' .ON() '(jQuery 1.7+) ya da' .delegate() 'kullanmalıdır. "Doğru" oklar - –

+0

nasıl "sol" ile resim arasındaki navigasyonu uyguluyor mu? –

+0

@AnthonyGrist teşekkürler işaret için, bir süre belgeleri okuyun olmasaydı :) düzenlendiğind kodumu Öneriniz için. – Tehnix

0

Javascript ile, öğeyi bulun ve bir onClick olay işleyicisi verin. ör .:

var myElement = document.body; // or document.getElementById(...), etc. 
myElement.onclick = function(event) {alert(event);} 

Bu HTML şey gösteriyor önlemek ve (belki ezoterik CSS hariç ... davranışını tanımlamak için başka bir yol yoktur) Bağlantı verilen web sitesi bu yöntemi kullanıyor olacak.

0

jQuery ui kitaplığını kullanmayı deneyebilirsiniz - bu, belirttiğiniz şekilde düğmeleri oluşturabilir.

jQuery UI

0

olay işleyicileri muhtemelen jQuery gibi bir JavaScript framework kullanılarak bağlanmıştır. DOM öğesinin onclick özelliğini kullanmazlar. click olay işleyicisini jQuery'li bir düğmeyle bağlama örneği için bkz. this jsFiddle, ardından bu düğmenin onclick değerini görmek için düğmeyi tıklatın (FF 9'da null olarak görüntülenir). Javascript ile

0

.. İşte bir örnek:

<a id="uniqueId" href="#">Button</a> 

<script> 
    var button = document.getElementById('uniqueId'); 
    button.onclick = function(e) { 
     alert("clicked!"); 
    } 
</script> 
+0

bu yöntemle sorun hala görecekti ki çalıştırdığımda işlev: 'alert (document.getElementById ('uniqueId'). onclick)' –

0

tıklama fonksiyonları, örneğin js başlatıldı edilebilir $ ("# nextBtn") (fonksiyonu) tıklayın;