Jquery - při více řešení přestane nějaké fungovat – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jquery - při více řešení přestane nějaké fungovat – JavaScript, AJAX, jQuery – Fórum – Programujte.comJquery - při více řešení přestane nějaké fungovat – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
JMM
~ Redaktor
0
Grafoman
12. 8. 2011   #1
-
0
-

Zdravím,

dost často se mi stává, že když využiji více řešení (slideshow, jquery lightbox, a další) tak mi přestane nějaké nebo všechyn fungovat. Abych řekl pravdu vůbec mi to s Jquery nejde. Problém mám teď s serialscroll, scrollto a jcarousellite. Používám Jquery min v1.6.2.

Volání scriptů mám

$(function() {
  $(".boxPrislusenstvi").jCarouselLite({
      btnNext: ".next",
      btnPrev: ".prev",
      visible: 3,
      circular: false
  });
});

jQuery(function($){

$('#slideshow').serialScroll({
  items:'li',
  prev:'#screen2 a.prev',
  next:'#screen2 a.next',
  axis:'x',
  duration:500,
  start: 0,
  force:true,
  step:1,
  jump:false,
  interval:false
});

});

$(document).ready(function() {
$("a.fullSize").fancybox({
  'hideOnContentClick': true,
    'titleShow': true,
    'overlayOpacity': 0.7,
    'overlayColor': '#000'
});
});

Při této kombinaci mi přestane fungovat #slideshow. Poradíte mi?

Nahlásit jako SPAM
IP: 89.111.99.–
Jan Malý | web: www.malyphoto.cz, @malyphoto
navstevnik
~ Anonymní uživatel
66 příspěvků
12. 8. 2011   #2
-
0
-

Mně kdysi pomohl příkaz jQuery.noConflict() a pak používat místo dolaru jQuery (zdá se to zdlouhavé, ale zvykla jsem si). Myslím, že jsem se tenkrát inspirovala tu http://docs.jquery.com/…er_Libraries

Nahlásit jako SPAM
IP: 89.102.171.–
1321645679876456
~ Anonymní uživatel
27 příspěvků
12. 8. 2011   #3
-
0
-

Místo plácání jednoho pluginu přes druhý si to radši napiš sám a podobným problémům se vyhneš. V opačném případě je dobré hlídat, kterou verzi jQuery nebo jaké další doplňky ten který plugin vyžaduje/podporuje. Pokud plugin používá globální objekty nebo definuje nové funkce v jQuery, které jsou v konfliktu s ostatními pluginy, tak ti nezbyde než ho refaktorovat, obalit uzávěrem, atd. Vypisuje ti něco chybová konzola?

Jinak ten kód by podle mě měl vypadat takhle:

$(function() {
    $(".boxPrislusenstvi").jCarouselLite({
        btnNext: ".next",
        btnPrev: ".prev",
        visible: 3,
        circular: false
    });

    $('#slideshow').serialScroll({
        items:'li',
        prev:'#screen2 a.prev',
        next:'#screen2 a.next',
        axis:'x',
        duration:500,
        start: 0,
        force:true,
        step:1,
        jump:false,
        interval:false
    });

    $("a.fullSize").fancybox({
        'hideOnContentClick': true,
        'titleShow': true,
        'overlayOpacity': 0.7,
        'overlayColor': '#000'
    });
});
Nahlásit jako SPAM
IP: 83.240.95.–
JMM
~ Redaktor
0
Grafoman
15. 8. 2011   #4
-
0
-

#3 1321645679876456
konsole mi vypisuje toto v jquery 1.6.2 min

a[0] is undefined
function($){$.fn.jCarouselLite=functi...op')+css(a,'marginBottom')}})(jQuery);

#2 navstevnik
zkusil sem jQuery.noConflict(); ale přestali jít všechny

Nahlásit jako SPAM
IP: 89.111.99.–
Jan Malý | web: www.malyphoto.cz, @malyphoto
1321645679876456
~ Anonymní uživatel
27 příspěvků
15. 8. 2011   #5
-
0
-

Spusť to s nekomprimovanou verzí jCarouselu a pak sem dej tu hlášku znova i s verzí a číslem řádku. Taky by se hodil kód stránky - na první pohled to vypadá, že se pracuješ s prvkem, který buď neexistuje nebo se ho snažíš vybrat ještě před načtením stránky. Taky je dost možné, že máš špatnou strukturu toho carouselu, který se snažíš inicializovat. Vypisuje ti to v tom původním kódu nebo v tom upraveném?

Nahlásit jako SPAM
IP: 83.240.95.–
JMM
~ Redaktor
0
Grafoman
15. 8. 2011   #6
-
0
-

#5 1321645679876456
tohle se mi zobrazuje v té opravené verzi... asi pošlu link, z toho bude vidět více než tady budu jen psát co kde a jak.

Jedná se o testovací verzi kde si zkouším nějaký věci a posléze to bude sloužit jako demonstrační web. http://obchod.signys.cz/?…

Nahlásit jako SPAM
IP: 89.111.99.–
Jan Malý | web: www.malyphoto.cz, @malyphoto
Řešení
1321645679876456
~ Anonymní uživatel
27 příspěvků
15. 8. 2011   #7
-
0
-
Vyřešeno Nejlepší odpověď

V tom pluginu není ošetřený případ, kdy carousel nebude obsahovat žádnou položku.  Pokud je carousel prázdný, tak by v něm měla být aspoň jedna prázdná položka:

<div class="boxPrislusenstvi">
    <ul>
        <li></li>
    </ul>
</div>

Ovšem ideální by bylo ošetřit to přímo v pluginu:

(function($) {
    $.fn.jCarouselLite = function(o) {
        
        ...
        
        return this.each(function() {
            if (!$('ul', this).length || !$('li', this).length)
                return true;
            
            ...
            
        });
    };

    ...

})(jQuery);
Nahlásit jako SPAM
IP: 83.240.95.–
JMM
~ Redaktor
0
Grafoman
19. 8. 2011   #8
-
0
-

#7 1321645679876456
díky moc

Nahlásit jako SPAM
IP: 89.111.99.–
Jan Malý | web: www.malyphoto.cz, @malyphoto
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý