Question

Dans Optimizely, j'essaie de créer quelques événements de clic de base.Je sais qu'Optimizely n'est disponible que sur jquery 1.6, donc en utilisant on(), off() pour les événements, cela ne sert à rien.Pour m'en assurer, j'utilise le gestionnaire d'événements le plus basique click(function(){ ... }));, mais même cela ne fonctionne pas.On m'a dit d'utiliser window.$ mais dans le click() cette technique ne fonctionne pas non plus.Le jquery dans Optimizely est-il différent ?

Je sais qu'il y a une sorte de problème entre Optimizely et jQuery, mais s'il vous plaît, quelqu'un peut-il m'éclairer à ce sujet ?

Extrait JS :

(function(window.$) {

  window.$.fn.tabbs = function(options) {
    var settings = {
            dir: 'top',
            trigger: 'a',
            target: '.tab-section',
            selected: 'selected'
        },
        html = $('html');

    window.alert('jquery object: ' + window.$);

    if (html.hasClass('no-js')) {
        html.removeClass('no-js').addClass('js');
    } else {
        html.addClass('js');
    }

    var classAction = function(obj, action, cls) {
        window.$(obj)[action](cls);
    };

    window.$.extend(settings, options);

    return this.each(function() {
        var tabs = window.$(this),
            tab = tabs.find(settings.trigger),
            tabSection = window.$(settings.target),
            tabsSystemContainer = tabs.closest('div');

        switch(settings.dir) {
            case 'left':
                tabsSystemContainer.removeClass(settings.dir || 'top').addClass('left' || settings.dir);
                break;
            default:
                tabsSystemContainer.removeClass('left' || settings.dir).addClass(settings.dir || 'top');
        }
        //this where I'm having problems
        tab.click(function(e) {
            var self = window.$(this);

            e.preventDefault();

            window.alert('Hello, inside tab click event...');
        });
    });
  };
}(window.jQuery));

window.$('.tabs').tabbs();

Beaucoup de remerciements

Était-ce utile?

La solution

Vous avez une erreur de syntaxe à la ligne 1 :

(function(window.$) {

Devrais lire

(function($) {

Vous pouvez utiliser le jQuery (>= 1.6) de votre choix :intégrez simplement celui que vous voulez, et dans Paramètres d'Optimizely -> Paramètres jQuery, sélectionnez "Ne pas inclure jQuery dans le code du projet", et tout fonctionnera très bien.Assurez-vous cependant d'inclure votre propre jQuery avant la balise de script Optimizely.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top