Javascript 在Optimizely中,基本jquery单击事件不起作用

Javascript 在Optimizely中,基本jquery单击事件不起作用,javascript,jquery,javascript-events,optimizely,Javascript,Jquery,Javascript Events,Optimizely,在Optimizely中,我尝试执行一些基本的单击事件。我知道Optimizely只在jQuery1.6上,所以对事件使用on(),off()是无用的。为了确保这一点,我使用的是最基本的事件处理程序click(function(){…})),但即使这样也不起作用。有人告诉我要使用window.$但是在click()中,这种技术也不起作用。jquery在优化方面是否有所不同 我知道Optimizely和jQuery之间存在一些问题,但是有人能告诉我一些关于这方面的信息吗 JS代码片段: (func

在Optimizely中,我尝试执行一些基本的单击事件。我知道Optimizely只在jQuery1.6上,所以对事件使用
on()
off()
是无用的。为了确保这一点,我使用的是最基本的事件处理程序
click(function(){…})),但即使这样也不起作用。有人告诉我要使用window.$但是在
click()
中,这种技术也不起作用。jquery在优化方面是否有所不同

我知道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):只需嵌入您想要的jQuery,然后在Optimizely的设置->jQuery设置中,选择“不要在项目代码中包含jQuery”,一切都会正常工作。但是,请确保在Optimizely script标记之前包含您自己的jQuery。

您正在设置一个立即调用的函数,并将其传递给
窗口。jQuery
,然后您要做的第一件事是将该参数重新分配给
窗口。$
。这似乎很奇怪。然后你就不用这个参数了…抱歉@Pointy,这是我做的一些实验。让我现在更新代码。更新,但仍然没有得到优化,虽然…你在哪里运行代码?它是在jQuery“ready”处理程序中,还是仅仅是
标记中的纯JavaScript?如果是后者,那么问题可能是您试图在DOM构建之前初始化选项卡。@Pointy:现在可以了,非常感谢。。。正如您所指出的,问题在于我忘记将代码包装在jquery“ready”处理程序中:
$(function(){…})