Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  jQuery conflict märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
mnemic
HV vaatleja

liitunud: 13.12.2013




sõnum 13.12.2013 13:43:53 jQuery conflict vasta tsitaadiga

Tere! Juba pikemat aega on minu töödes tekkinud probleem jQuery'ga. Lahenduse otsimisele on kulnud kurattosin tundi ja proovitud on kõiki variante, mis leitud, ükski neist aga mu probleemi ei lahenda.
Probleemiks on erinevate jQuery versioonide kasutus, ühes dokumendis. Nagu teada on, siis kasutades erinevaid jQuery versioone korraga, tekib nendevaheline konflikt. Esimene kord, kui antud probleem tekkis, õnnestus mul see lahendada kasutades skripti
<script type="text/javascript">
      var jQuery_1_7_2 = $.noConflict(true);
</script>

Konflikt oli jQuery 1.7.2 ja 1.8.2 vahel.
Nüüd aga kasutusel jQuery 1.9.1 ja 1.10.2 ja lihtsalt ei leia lahendust. Kas asi võib olla 1.9.1 versioonis? -Just see tekitab konflikti ja eelnevalt olen ma noconflict lahendusega saanud lahenduse, kuid alati kui 1.9.1 mängus on, siis ükski lahend ei tööta .

Lisan ka koodi igaks juhuks:


<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Probleem</title>
    <link rel="stylesheet" href="css/style.css">
<!-- Custom scrollbars CSS -->
   <link href="css/jquery.mCustomScrollbar.css" rel="stylesheet" />
<!-- scrollto -->
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
   <script src='keynav/scrollIt.min.js' type='text/javascript'></script>
    <script>$(function() { $.scrollIt(); });</script>
</head>
<body>
   <div class="nav-container">
        <nav>
            <ul>
            <li> <a data-scroll-nav="0">Link 1</a> </li>
            <li> <a data-scroll-nav="1">Link 2</a> </li>
            <li> <a data-scroll-nav="2">Link 3</a> </li>
            <li> <a data-scroll-nav="3">Link 4</a> </li>
            <li> <a data-scroll-nav="4">Link 5</a> </li>
            <li> <a data-scroll-nav="5">Link 5</a> </li>
            </ul>
        </nav>
    </div>
    <section class="main-wrap">
        <section id="intro" data-scroll-index="0">
           <section class="cont-wrap">
               <img src="images/logo.png" alt="logo">
            </section>
        </section>
        <section id="ettevote" data-scroll-index="1">asd</section>
        <section id="teenused" data-scroll-index="2">asd</section>
        <section id="portfolio" data-scroll-index="3">asd</section>
        <section id="affiliate" data-scroll-index="4">asd</section>
        <section id="kontakt" data-scroll-index="5">asd</section>
    </section>
<!-- Google CDN jQuery with fallback to local -->
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
   <script>!window.jQuery && document.write(unescape('%3Cscript src="js/minified/jquery-1.9.1.min.js"%3E%3C/script%3E'))</script>
   <!-- custom scrollbars plugin -->
   <script src="js/jquery.mCustomScrollbar.concat.min.js"></script>
   <script>
      (function($){
         $(window).load(function(){
            $("body,.content").mCustomScrollbar({
               scrollButtons:{
                  enable:true
               }
            });
         });
      })(jQuery);
   </script>

</body>
</html>

Teab keegi lahendit, oskab aidata? Oleksin äärmiselt tänulik.
PS: ütlen ka igaks juhks, et minu teadmised javascriptis ja jQuery-s on pm vaid copy-paste, seetõttu ka nii raske see minule icon_biggrin.gif.

Tänud ette!
M.


viimati muutis mnemic 13.12.2013 15:57:01, muudetud 2 korda
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 13.12.2013 13:48:14 vasta tsitaadiga

Pole küll ka teab mis JavaScript ja jQuery guru, aga mis tingib vajaduse kasutada mitut erinevat versiooni paralleelselt? Tasuks pigem selles suunas vaadata, kuidas selline murekoht oma projektist välja saada.
_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
mnemic
HV vaatleja

liitunud: 13.12.2013




sõnum 13.12.2013 14:06:28 vasta tsitaadiga

Fukiku kirjutas:
mis tingib vajaduse kasutada mitut erinevat versiooni paralleelselt?

Vaja on kasutada kujunduslikul põhjusel 2-e jQuery pluginat, mis paratamatult kasutavad erinevat jQuery versiooni. Ja isegi kui ma jätaksin antud pluginad ära, oleksin tõesti hetkeks probleemist vaba, kuid probleemi eest ei saa ju ära joosta, see tuleb lahendada. Mingil momendil võib ikka tekkida situatsioon, kus antud teema vajaks lahendust.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 13.12.2013 14:34:36 vasta tsitaadiga

Seda ma arvasin, et asi mingites pluginates on. Kas mõlemad pluginad on raudkindlalt konkreetse versiooni küljes kinni? Kas emb-kumb edasi või tagasi ei ühildu? Kas kahe versiooni vahel kolmandat mõlemale söödavat ei leidu? Või ongi jQuery ökosüsteem nii kivisse raiutud, et tuleb sellise jamaga tegeleda?

Eeldatavalt võiks (aga tõesti ei pruugi) vanemast versioonist sõltuv plugin uuemaga töötada. Tagasiühilduvuse lõhkumine on hea tava kohaselt väga taunitud.. aga ei saa muidugi välistada, et seda tehakse.

_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 13.12.2013 14:38:00 vasta tsitaadiga

Ma ei näe, et sul seal lehel oleks üldse kaks erinevat jQuery versiooni. Üks on ju jQuery ja teine on jQueryUI.

Lisaks custom scrollbars plugin ootab sult jQuery nimelist muutujat mitte jQuery_1_9_1

_________________
There is no place like 127.0.0.1


viimati muutis Renka 13.12.2013 14:40:03, muudetud 1 kord
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mnemic
HV vaatleja

liitunud: 13.12.2013




sõnum 13.12.2013 15:00:45 vasta tsitaadiga

Fukiku kirjutas:
Seda ma arvasin, et asi mingites pluginates on. Kas mõlemad pluginad on raudkindlalt konkreetse versiooni küljes kinni? Kas emb-kumb edasi või tagasi ei ühildu? Kas kahe versiooni vahel kolmandat mõlemale söödavat ei leidu? Või ongi jQuery ökosüsteem nii kivisse raiutud, et tuleb sellise jamaga tegeleda?

Eeldatavalt võiks (aga tõesti ei pruugi) vanemast versioonist sõltuv plugin uuemaga töötada. Tagasiühilduvuse lõhkumine on hea tava kohaselt väga taunitud.. aga ei saa muidugi välistada, et seda tehakse.

Eraldi on mõlemad võimelised töötama uusimal jQuery versioonil (http://code.jquery.com/jquery-latest.js) , kuid koos mitte ..

Renka, see tähendab, et ma peaksin...? icon_biggrin.gif
tagasi üles
vaata kasutaja infot saada privaatsõnum
gandalf
HV kasutaja
gandalf

liitunud: 01.09.2002




sõnum 13.12.2013 15:39:45 vasta tsitaadiga

võta see noConflict osa ära lihtsalt. Sul ei ole seal mitut jQuery versiooni. -> Sul ei ole seal mingit konflikti, mida lahendada. Pigem Sa praegu ajad asja segadusse seal vägisi olematu konflikti lahendamisega.
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
mnemic
HV vaatleja

liitunud: 13.12.2013




sõnum 13.12.2013 15:58:32 vasta tsitaadiga

gandalf, vabandust, tegemist oli vale koodiga üldse .. nüüd õige, nii nagu koodid olema peaksid .. niiet tegemist ei ole ikkagi jQuery UI-ga vaid ju ikka jQuery-ga. Ja sedasi ei tööta ..
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 13.12.2013 16:13:18 vasta tsitaadiga

mnemic, mis jutt see üldse on, et see plugin (mCustomScrollbar) ei tööta uuema jQuery versiooniga? Täitsa ilusasti töötab ju.

Võta see 1.9.1 includemine koodist välja ja ongi kõik korras.

muus osas on sul noConflict ju puudu, et üldse saaks eri versioone kasutada. Samas polegi eri versioone vaja.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mnemic
HV vaatleja

liitunud: 13.12.2013




sõnum 13.12.2013 16:53:13 vasta tsitaadiga

Renka, nagu ma ütlesin, ERALDI on mõlemad võimelised töötama uusimal versioonil, kuid koos mitte .. selles ongi probleem.
Eemaldasin 1.9.1 lisamise koodist, jäi vaid üks include, jquery-latest.js, kuid selle tulemusena töötab vaid scrollbar-i plugin, scrollIt plugin aga mitte .. kui aga eemaldan koodist kõik scrollbariga seostuva, siis töötab .
Ma loodan, et saad mu selgitusest aru ..

Igaks juhuks:
Plugin 1: http://www.jqueryscript.net/other/jQuery-Custom-Scrollbar-Plugin-malihu.html (jQuery 1.9.1)
Plugin 2: http://www.jqueryscript.net/animation/Easy-jQuery-Plugin-For-Scrolling-Web-Page-ScrollIt-js.html (jQuery 1.10.2)
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 13.12.2013 17:00:11 vasta tsitaadiga

Siis on ju need pluginad omavahel konfliktis - mitte jquery.

Vaata üle, et sul mCustomScrollbar viimane versioon samas ikka oleks. Seal sinu viidatud lingil tundub väga vana versioon olevat. Miks sellist lehte kasutada? Asjad tuleks ikka originaalallikast alla laadida kus asjad on up-to-date: http://manos.malihu.gr/jquery-custom-content-scroller/

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mnemic
HV vaatleja

liitunud: 13.12.2013




sõnum 13.12.2013 17:39:57 vasta tsitaadiga

Renka, mõlemad pluginad on alla laetud originaalallikatest, antud lingid olid lihtsalt tutvustuseks, milliste pluginatega tegu (sealt ma nad avastasin). Igaks juhuks sai mõlemad pluginad eemaldatud ja uuesti alla laetud ja lisatud .. Kõigepealt lisasin scrollIt plugina, vahetasin ära jQuery versiooni 1.10.2 pealt jQuery-latest versiooni vastu, testisin, töötas. Järgnevalt lisasin scrollbar-i plugina ja eemaldasin sellelt jQuery versiooni 1.9.1, (kuna ka see oli võimeline töötama latest versioonil), testisin, tulemusena töötas scrollbar, kuid scrollIt plugin ei tööta. Võibolla on siis tõesti tegemist pluginate vahelise konfliktiga, mitte ikkagi jQuery, tunnistan oma eksimust, sest nagu sai alguseski öeldud, Javascript ja jQuery on minu jaoks võõrad.
Kui tegemist on tõesti pluginate vahelise konfliktiga, mida peaksin tegema? Oskad äkki kasvõi suunata lahenduse poole, kui mitte seda lausa välja pakkuda.

Tänud abi eest!
M.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 13.12.2013 17:45:08 vasta tsitaadiga

Siis tuleb debugida ja/või plugina autoriga kontakteeruda. Või siis mõni muu plugin kasutusele võtta.

Aga kui sa JS/jQuery maailmas eriti kodus ei ole siis on raske edasi seletada.

Aga võid ju näiteks vaadata mis toimub konsoolis. Järsku on mõni veateade seal.

Samas kui soovid, et keegi aitaks siis on elementaarne mingisugunegi näide kusagile üles panna. Kõige parem kui see oleks näiteks jsfiddle.net keskkonnas

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mannatera
Kreisi kasutaja
mannatera

liitunud: 01.07.2005



Autoriseeritud ID-kaardiga

sõnum 13.12.2013 18:29:04 vasta tsitaadiga

Ei lähe konflikti ja töötavad ilusti kõige uuema jquery peal (palun ära kunagi kasuta kahte erinevat versiooni ühest ja samast scriptist). Su koodist küll ei olnud aru saada, kus sa seda mCustomScrollbari kasutada tahad, aga, siin variant kus mõlemad töötavad:
http://www.upload.ee/files/3762407/test.zip.html

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Probleem</title>
   <!-- Custom scrollbars CSS -->
   <link href="css/jquery.mCustomScrollbar.css" rel="stylesheet" />
</head>
<body>
   <div class="nav-container">
        <nav>
            <ul>
            <li> <a data-scroll-nav="0">Link 1</a> </li>
            <li> <a data-scroll-nav="1">Link 2</a> </li>
            <li> <a data-scroll-nav="2">Link 3</a> </li>
            <li> <a data-scroll-nav="3">Link 4</a> </li>
            <li> <a data-scroll-nav="4">Link 5</a> </li>
            <li> <a data-scroll-nav="5">Link 5</a> </li>
            </ul>
        </nav>
    </div>
    <section class="main-wrap content" style="height:70px; overflow:auto; width: 200px;">
        <section id="intro" data-scroll-index="0">
           <section class="cont-wrap"></section>
        </section>
        <section id="ettevote" data-scroll-index="1">asd</section>
        <section id="teenused" data-scroll-index="2">asd</section>
        <section id="portfolio" data-scroll-index="3">asd</section>
        <section id="affiliate" data-scroll-index="4">asd</section>
        <section id="kontakt" data-scroll-index="5">asd</section>
    </section>
   
   
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
   <script src="js/jquery.mCustomScrollbar.concat.min.js"></script>
   <script src="js/scrollIt.min.js"></script>

   <script>
      $(function() {
         $.scrollIt();
         $(window).load(function(){
            $("body,.content").mCustomScrollbar({
               scrollButtons:{
                  enable:true
               }
            });
         });
      });
   </script>
</body>
</html>
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
mnemic
HV vaatleja

liitunud: 13.12.2013




sõnum 13.12.2013 18:59:10 vasta tsitaadiga

mannatera, tänan vastuse eest, kuid see ei lahendanud probleemi.
Kõigepealt, scrollbar oli mõeldud tervele lehele, ehk siis body tervikule. Ma ei tea kas mul on kõik brwoserid vigased või milles asi, kuid mina mõlemat korraga tööl ei näe .. scrollbar töötab tip-top, kuid linkimine mitte. Ka selles näidises mitte, mis sa lisasid.
Renka, tõepoolest, konsoolis leidus üks veateade, täpsemalt:
tsitaat:

event.returnValue is deprecated. Please use the standard event.preventDefault() instead.
.. uurisin ka kasutuselolevaid js faile, kuid ei leidnud nagu kohta, kus oleks event.returnValue-t märgitud..
tagasi üles
vaata kasutaja infot saada privaatsõnum
gandalf
HV kasutaja
gandalf

liitunud: 01.09.2002




sõnum 13.12.2013 19:03:05 vasta tsitaadiga

see hoiatus tuleb jQuery enda koodist ja pole antud kontekstis oluline.
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
mnemic
HV vaatleja

liitunud: 13.12.2013




sõnum 13.12.2013 19:06:26 vasta tsitaadiga

Milles siis aga probleem võib olla? ei tea keegi ?
Igastahes, ma tegin nüüd jsffiddle'i selle valmis .. äkki seal kergem vaadata ..
http://jsfiddle.net/mnemic/2SLUu/3/
Scroll töötab, kuid linkimine mitte. Teoreetiliselt peaks lingile klikkides ta edasi minema vastava section-i peale, kuid ta ei tee seda.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 13.12.2013 19:49:09 vasta tsitaadiga

Minuteada peaks asi olema selles, et see mCustomScrollbar eemaldab brauseri enda scrollimise võimaluse ja fakeb seda ise JS/CSSiga. Nii ei saagi ju brauser seda kuidagi scrollida. Ega ka mõni muu script mis brauserile vastava eventi saadab.

Lühidalt siis need ei saagi koos toimida.

Parandage mind kui eksin - aga ise sügavamale ei viitsinud kaevata seal hetkel.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mannatera
Kreisi kasutaja
mannatera

liitunud: 01.07.2005



Autoriseeritud ID-kaardiga

sõnum 13.12.2013 21:51:32 vasta tsitaadiga

Terve body scrollbari sa niikuinii igas browseris normaalseks ei saa. Sa pead tegema mingi holderi/wrapperi mis on 100% lai ja 100% kõrge ja sellele custom scroll panna. Aga minuarvates see täiesti mõttetu häkk.
mnemic kirjutas:
mannatera, tänan vastuse eest, kuid see ei lahendanud probleemi.
Kõigepealt, scrollbar oli mõeldud tervele lehele, ehk siis body tervikule. Ma ei tea kas mul on kõik brwoserid vigased või milles asi, kuid mina mõlemat korraga tööl ei näe .. scrollbar töötab tip-top, kuid linkimine mitte. Ka selles näidises mitte, mis sa lisasid.

Linkimine mul küll töötas, Chrome viimane versioon siis. Mis browserit sa ise kasutad üldse? Ja pea meeles, et sa pead vertikaalse scrolli tekitama, et sa linkidele klikkides effekti üldse näeksid.
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 19
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  jQuery conflict
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.