Ich verwende jquery-style-switcher.js
für die Änderung der Stil einiger Elemente. Wenn ich auf den Farbenstil der Seite klicke ändert sich nicht und in der Quelle dieser Seite hinzugefügt diese Klasse jssError error level0
bis ul
Tag, die Farben enthalten. Diese Codes funktionierten auf der HTML-Seite, aber in CMS no! Ich debug diese js-Datei von Chrome und verstehe, wenn diese Js-Datei auf der allgemeinen HTML-Datei runed: ein Ereignis rufen Sie addClickEvents ausgeführt, aber in meiner Website, die diese Vorlage für Skin der Website verwendet: addClickEvents Funktion nicht hingerichtet. Eine Funktion, die addClickEvents wird nennen FunktionFehler beim Ändern des Stils der Seite mit jquery
init: function ($root, config) {
this.$root = $root;
this.config = config ? config : {};
this.setDefaultTheme();
if(this.defaultTheme) {
// try cookies
if (this.config.cookie) {
this.checkCookie();
}
// try hover
if (this.config.hasPreview) {
this.addHoverEvents();
}
// finally, add click events
this.addClickEvents();
} else {
this.$root.addClass('jssError error level0');
}
}
In dieser Funktion (init) init: Defaultwert ist nicht definiert !!!!
Warum defaultTheme nicht definiert ist? Wenn Sie diese Frage beantworten können, wird das Problem gelöst.
jquery-style-switcher.js:
(function ($) {
var jStyleSwitcher,
_defaultOptions = {
hasPreview: true,
defaultThemeId: 'jssDefault',
fullPath: 'css/',
cookie: {
expires: 30,
isManagingLoad: true
}
},
// private
_cookieKey = 'jss_selected',
_docCookies = {};
/*\
|*|
|*| :: cookies.js ::
|*|
|*| A complete cookies reader/writer framework with full unicode support.
|*|
|*| revision #1
|*|
|*| https://developer.mozilla.org/en-US/docs/Web/API/document.cookie
|*|
|*| This framework is released under the GNU Public License, version 3 or later.
|*| http://www.gnu.org/licenses/gpl-3.0-standalone.html
|*|
|*| Syntaxes:
|*|
|*| * docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])
|*| * docCookies.getItem(name)
|*| * docCookies.removeItem(name[, path[, domain]])
|*| * docCookies.hasItem(name)
|*| * docCookies.keys()
|*|
\*/
_docCookies = {
getItem: function (sKey) {
if (!sKey) {
return null;
}
return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
},
setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {
if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) {
return false;
}
var sExpires = "";
if (vEnd) {
switch (vEnd.constructor) {
case Number:
sExpires = vEnd === Infinity ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + vEnd;
break;
case String:
sExpires = "; expires=" + vEnd;
break;
case Date:
sExpires = "; expires=" + vEnd.toUTCString();
break;
}
}
document.cookie = encodeURIComponent(sKey) + "=" + encodeURIComponent(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");
return true;
},
removeItem: function (sKey, sPath, sDomain) {
if (!this.hasItem(sKey)) {
return false;
}
document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "");
return true;
},
hasItem: function (sKey) {
if (!sKey) {
return false;
}
return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
},
keys: function() {
var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) {
aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);
}
return aKeys;
}
};
jStyleSwitcher = function ($root, config) {
return this.init($root, config);
};
jStyleSwitcher.prototype = {
/**
* {Object} DOM reference to style option list
*/
$root: null,
/**
* {Object} configs for the style switcher
*/
config: {},
/**
* {Object} jQuery reference to <link> tag for swapping CSS
*/
$themeCss: null,
/**
* {String} default theme page was loaded with
*/
defaultTheme: null,
init: function ($root, config) {
this.$root = $root;
this.config = config ? config : {};
this.setDefaultTheme();
if(this.defaultTheme) {
// try cookies
if (this.config.cookie) {
this.checkCookie();
}
// try hover
if (this.config.hasPreview) {
this.addHoverEvents();
}
// finally, add click events
this.addClickEvents();
} else {
this.$root.addClass('jssError error level0');
}
},
setDefaultTheme: function() {
this.$themeCss = $('link[id=' + this.config.defaultThemeId + ']');
if(this.$themeCss.length) {
this.defaultTheme = this.$themeCss.attr('href');
}
},
resetStyle: function() {
this.updateStyle(this.defaultTheme);
},
updateStyle: function(newStyle) {
this.$themeCss.attr('href', newStyle);
},
getFullAssetPath: function(asset) {
return this.config.fullPath + asset + '.css';
},
checkCookie: function() {
var styleCookie;
// if using cookies and using JavaScript to load css
if (this.config.cookie && this.config.cookie.isManagingLoad) {
// check if css is set in cookie
styleCookie = _docCookies.getItem(_cookieKey);
if (styleCookie) {
newStyle = this.getFullAssetPath(styleCookie);
// update link tag
this.updateStyle(newStyle);
// update default ref
this.defaultTheme = newStyle;
}
}
},
addHoverEvents: function() {
var self = this;
this.$root.find('a').hover(
function() {
var asset = $(this).data('theme'),
newStyle = self.getFullAssetPath(asset);
// update link tag
self.updateStyle(newStyle);
},
function() {
// reset link tag
self.resetStyle();
}
);
},
addClickEvents: function() {
var self = this;
this.$root.find('a').click(
function() {
var asset = $(this).data('theme'),
newStyle = self.getFullAssetPath(asset);
// update link tag
self.updateStyle(newStyle);
// update default ref
self.defaultTheme = newStyle;
// try to store cookie
if (self.config.cookie) {
_docCookies.setItem(_cookieKey, asset, self.config.cookie.expires, '/');
}
}
);
}
};
$.fn.styleSwitcher = function (options) {
return new jStyleSwitcher(this, $.extend(true, _defaultOptions, options));
};
})(jQuery);
HTML dieses Abschnitts in meiner Seite:
<div id="colour-variations">
<a class="option-toggle"><i class="icon-gear"></i></a>
<h3>Preset Colors</h3>
<ul class="jssError error level0">
<li><a href="javascript: void(0);" data-theme="style"></a></li>
<li><a href="javascript: void(0);" data-theme="pink"></a></li>
<li><a href="javascript: void(0);" data-theme="blue"></a></li>
<li><a href="javascript: void(0);" data-theme="turquoise"></a></li>
<li><a href="javascript: void(0);" data-theme="orange"></a></li>
<li><a href="javascript: void(0);" data-theme="lightblue"></a></li>
<li><a href="javascript: void(0);" data-theme="brown"></a></li>
<li><a href="javascript: void(0);" data-theme="green"></a></li>
</ul>
</div>
Sie können template sehen, die allgemeine Website ist. Ich benutze diese Vorlage in der Haut für dotnetnuke7
und dieses Problem erschien.
Bitte schreiben Sie den Code in ein Snippet ([Siehe Abbildung] (http://i.imgur.com/p94EZRA.png?1)), [jsFiddle.net] (http://jsfiddle.net), [ PenCode.io] (http://pencode.io) oder [Plnrkr.co] (http://plnkr.co) Darüber hinaus sollten Sie [this] (http://stackoverflow.com/) beziehen help/mcve) und [das] (http://stackoverflow.com/questions/how-to-ask) – zer00ne
Fügen Sie Ihre Farbthemen auch 'style.css',' pink.css' ... 'green.css hinzu ' – zer00ne
Auch brauchen Sie die' default.css'. Sie haben Probleme mit diesem Plugin, das Stile wechselt, aber Sie stellen überhaupt kein CSS zur Verfügung. Welche Regeln haben diese Klassen? 'jssError',' error', 'level0',' color-variations', 'option-toggle', etc .. Dieses img zeigt uns nichts über den zugrunde liegenden Code. – zer00ne