2012-03-09 27 views
5

Jestem w trakcie uczenia się JQuery, ponieważ przeprowadzam poważny przeprojektowanie witryny. Zdaję sobie sprawę, jak fajnie byłoby zrobić jakąś stylizację w javascript zamiast pamiętać o dodaniu odpowiedniej klasy css do każdego diva (podobno lubię zapominać o takich rzeczach).Zmiana stylu dla wszystkich elementów za pomocą zdarzenia kliknięcia

W każdym razie chcę dodać styl cursor: pointer; do wszystkich elementów, które mają zarejestrowane zdarzenie kliknięcia. Myślę, że to musi wyglądać tak:

$("div").Find(/*Has Click Event*/) 
    .css("cursor", "pointer"); 
+3

Pod względem wydajności, myślę, że byłoby lepiej, aby pamiętać, aby dodać to do stylów, niż zrobić javascript obejście: – Curt

+0

http://stackoverflow.com/questions/1515069/jquery-check-if-event-exists-on-element i http://www.codenothing.com/archives/jquery/event-filter/ – NimChimpsky

+1

Przeczytaj to: http://stackoverflow.com/questions/1236067/test-if-event-handler-is-bound-to-an-element-in-jquery Jak powiedział Curt, nie będzie wydajne używanie JS do robienia tego, ale to jest możliwe lub dostać ta wtyczka http://www.codenothing.com/archives/jquery/event-filter/ –

Odpowiedz

2
$("div").each(function() { 
    if($(this).data("events") !== 'undefined' && $(this).data("events").click) { 
     $(this).css({"cursor": "pointer", "border": "1px solid red"}); 
    } 
});​ 

Demo.

+0

pierwszy selektor powinien być div nie asterix? (za puprose tego pytania) – NimChimpsky

Powiązane problemy