سؤال

في Optimizely، أحاول القيام ببعض أحداث النقر الأساسية.أعلم أن Optimizely موجود فقط على jquery 1.6، لذا استخدم on(), off() للأحداث لا فائدة منها.للتأكد، أنا أستخدم معالج الأحداث الأساسي click(function(){ ... }));, ولكن حتى هذا لا يعمل.لقد طُلب مني استخدام window.$ ولكن في click() هذه التقنية لا تعمل أيضًا.هل jquery في Optimizely مختلف؟

أعلم أن هناك مشكلة ما بين Optimizely وjQuery ولكن من فضلك هل يمكن لأي شخص أن يلقي لي بعض الضوء على هذا؟

مقتطف 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();

شكرا جزيلا

هل كانت مفيدة؟

المحلول

لديك خطأ في بناء الجملة في السطر 1:

(function(window.$) {

يجب أن تقرأ

(function($) {

يمكنك استخدام أي إصدار jQuery (>= 1.6) تفضله:ما عليك سوى تضمين ما تريده، وفي إعدادات Optimizely -> إعدادات jQuery، حدد "عدم تضمين jQuery في كود المشروع"، وستعمل الأمور على ما يرام.تأكد من تضمين jQuery الخاص بك قبل علامة البرنامج النصي Optimizely.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top