Mam ten kawałek kodu w moim motywie WordPress:

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.latest.js"></script>

<script type="text/javascript">
        $(document).ready(function() {
            $ ('ul li:even').addClass('even');
            $ ('ul li:odd').addClass('odd');
        });
</script>

I w części ciała

<div id="specs">
<ul>
<li><strong>Standby Time</strong> 1100hr</li>
<li><strong>Internal Storage</strong> 16GB or 32GBGB</li>
<li><strong>Memory Slot</strong> microSD up to 32GB</li>
<li><strong>Camera</strong> 8 Megapixel</li>
<li><strong>Front Facing Camera</strong> 2 Megapixel</li>
<li><strong>Video Camera</strong> Yes, 1080p</li>
<li><strong>Camera Flash</strong> 1 x LED</li>
<li><strong>Coverage (Band)</strong> Quad</li>
</ul>
</div>

JQuery nie wydaje się stosować dziwnych, a nawet zajęć. Próbowałem z różnymi wersjami jQuery, ale wciąż nic. Czy ktoś może mi pomóc z tym problemem?

0
Andrei 27 wrzesień 2011, 12:55

5 odpowiedzi

Najlepsza odpowiedź

To powinno działać w porządku, ale możemy również spróbować przepisać go trochę, aby również użyć najlepszej praktyki {x1}} i :odd - selektorów zgodnie z Dokumentami JQuery:

Dodatkowe uwagi :

Ponieważ: Nawet jest przedłużaniem jQuery, a nie częścią specyfikacji CSS, zapytania o: Nawet nie może skorzystać z zwiększenia wydajności dostarczonej przez native dom querysectorallall () metody. Aby uzyskać najlepszą wydajność podczas korzystania z: Nawet, aby wybrać elementy, najpierw wybierz elementy za pomocą czystych selektor CSS, a następnie użyj .Filter (": nawet").

$(document).ready(function() {

    $('ul li').filter(':even').addClass('even').end()
              .filter(':odd').addClass('odd');
});

Lista kontrolna:

  1. Czy jQuery jest załadowany? (Sprawdź, czy monitor sieciowy w Firebug / Chrome)
  2. Czy potrzebujesz filtra ul w pierwszym selektorze? Wybieranie właśnie li byłoby jeszcze bardziej występujące, ponieważ jQuery może wykorzystać getElementsByTagName.
4
PatrikAkerstrand 27 wrzesień 2011, 09:05

Ten kod jQuery działa dobrze. http://jsfiddle.net/v2nk7/

Zgaduję, że jQuery nie jest właściwie uwzględnione w twojej stronie, sprawdź <?php bloginfo('template_url'); ?> jest wysyłane, zakładałbym, że powoduje, że powoduje zniekształcone adresy URL, a tag skryptu wynosi 404.

3
Useless Code 27 wrzesień 2011, 09:04

Jego pracuje tutaj http://jsfiddle.net/7pptm/

Upewnij się, że jQuery jest załadowany

0
Rafay 27 wrzesień 2011, 09:02

Wygląda na to, że jQuery nie został poprawnie załadowany, albo jest konflikt przy użyciu $ (prototyp?).

Jak wygląda linię jQuery <script> podczas przeglądania źródła?

Jeśli jest to konflikt biblioteki, spróbuj zmienić tę linię

$ (document) .ready (function () {

Do

jQuery(function($) {

Również, jak (był) wskazany w komentarzu, możesz osiągnąć ten efekt wyłącznie za pomocą CSS. Zobacz http://reference.sitepoint.com/css/pseudoclass-nthchild

0
Phil 27 wrzesień 2011, 09:07

Masz niepotrzebną przestrzeń między $ a nawiasami. Próbować:

<script type="text/javascript">
    $(document).ready(function() {
        $('ul li:even').addClass('even');
        $('ul li:odd').addClass('odd');
    });
-2
benb 27 wrzesień 2011, 09:04