Hallo,
anbei mal ein Paket um im Frontend auf die aktuelle jQuery Version 3.3.1 umzusteigen.
Das Paket ist zwar getestet und funktioniert ... trotzdem sollte es nicht direkt in einen Liveshop eingespielt werden. Ich konnte nur solche Anpassungen testen, welche auch in einem Standardtemplate eingebaut sind. Für andere jQuery Scripte und oder Addons kann ich keine Funktionalität gewährleisten.
Und noch ein wichtiger Hinweis .. Die Anpassungen sind NUR für einen Shop bzw. Template welches auch auf einem Modified-Template oder einem Responsive Modified Template basiert. Für andere Templates müssen mit Sicherheit weitere Anpassungen vorgenommen werden damit der Shop danach auch noch funktioniert.
Zu den Änderungen
Im Dowload-Paket gibt es 2 Ordner (css & javascript).
Je nach Template werden nicht alle Dateien benötigt.
Dass ihr die bisherigen Dateien vorher sichert ist denke ich klar
Für ein RESPONSIVE modified-Template:
CSS-Ordner - Alle Dateien hochladen und die alten überschreiben
JAVASCRIPT-Order - Alle Dateien hochladen und die alten überschreiben
Für ein
NICHT RESPONSIVE modified-Template
(hier werden die Dateien für das SumoSelect nicht benötigt)
CSS-Ordner - wird nicht benötigt
JAVASCRIPT-Ordner - die folgenden Dateien hochladen
- get_states.js.php
- jquery.alerts.min.js
- jquery-3.3.1.min.js
Folgende Anpassungen müssen noch manuell gemacht werden.
(Für responsive und auch nicht responsive modified Templates)general.js.php
suche:
<script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS; ?>jquery-1.8.3.min.js" type="text/javascript"></script>
ersetze mit:
<script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS; ?>jquery-3.3.1.min.js" type="text/javascript"></script>
(Nur für responsive modified Templates)stylesheet.css
suche:
.filter_bar .CaptionCont.SlectBox.Selected {
ersetze mit:
.filter_bar .CaptionCont.SelectBox.Selected {
(Nur für responsive modified Templates)general_bottom.js.php
suche:
$
('select').SumoSelect
(); /* Mark Selected */ var tmpStr
= ''; $
('.filter_bar .SumoSelect').each(function(index
){ ($
(this
).find
('select').val
() == '') ? $
(this
).find
('p').removeClass
("Selected") : $
(this
).find
('p').addClass
("Selected"); });ersetze mit:
$
('select').SumoSelect
(); var selectWord
= ''; var selectTimer
= null; $
('body').on
('keydown', function(e
){ var target
= $
(e
.target
); var tmpClass
= target
.attr
("class"); if(typeof
(tmpClass
) != "undefined"){ if(tmpClass
.indexOf
("SumoSelect") > -1){ var char
= String
.fromCharCode
(e
.keyCode
); if(char
.match
('\d*\w*')){ selectWord
+= char
; } clearTimeout
(selectTimer
); //cancel the previous timer. selectTimer
= null; selectTimer
= setTimeout
(function(){ var select
= target
.find
("select"); var options
= target
.find
("select option"); for(var x
= 0; x
< options
.length
; x
++){ var option
= options
[x
]; var optionText
= option
.text
.toLowerCase
(); if(optionText
.indexOf
(selectWord
.toLowerCase
()) == 0){ var ul
= target
.find
("ul"); var li
= target
.find
(".selected"); var offsetUl
= ul
.offset
(); var offsetLi
= li
.offset
(); console
.log(option
.text
); select
.val
(option
.value
); select
.trigger
("change"); select
[0].sumo
.unSelectAll
(); select
[0].sumo
.toggSel
(true,option
.value
); select
[0].sumo
.reload
(); select
[0].sumo
.setOnOpen
(); newLi
= $
(select
[0].sumo
.ul
).find
(".selected"); var offsetNewLi
= newLi
.offset
(); ul
= select
[0].sumo
.ul
; var newOffset
= offsetNewLi
.top
- offsetUl
.top
; ul
.scrollTop
(0); ul
.scrollTop
(newOffset
); console
.log(offsetUl
.top
+"~"+offsetLi
.top
+"~"+offsetNewLi
.top
); break; } } selectWord
= ''; }, 500); } } }); /* Mark Selected */ var tmpStr
= ''; $
('.filter_bar .SumoSelect').each(function(index
){ ($
(this
).find
('select').val
() == '') ? $
(this
).find
('p').removeClass
("Selected") : $
(this
).find
('p').addClass
("Selected"); });Mit dem neuen Sumo-Select kommt auch noch eine Tastatur-Funktionalität
Ich meine das wars und ich habe nichts vergessen.
Ich bin gespannt auf Feedback
Markus
P.S. ich bin mal so frei und änderen den Titel des 1. Beitrags ein wenig ab damit man weiss um was es hier genau geht.