是否可以根据屏幕宽度更改Bootstrap弹出窗口的操作?

时间:2012-02-23 15:12:18

标签: javascript jquery twitter-bootstrap

我问this question有关根据屏幕大小更改引导弹出窗口位置的问题。

答案很棒 - 不过我现在也想改变弹出窗口的动作(所以它是点击移动设备)以及位置,并且很难重新分解代码。这就是我所拥有的:

$(document).ready(function(){
    $('#my_list li').popover({
        placement: wheretoplace
    });
});

function wheretoplace(){
    var width = window.innerWidth;
    if (width<500) return 'below';
    return 'left';
}

如何修改wheretoplace函数以返回两件事:placement值和trigger值?我已经在jsFiddle中找到了现有的东西。

编辑 - 我修改了上面的jsFiddle,以显示完整的解决方案,在@James的答案中添加click事件。

1 个答案:

答案 0 :(得分:1)

如果您尝试从函数返回两个值,请尝试将它们指定为对象的属性,然后返回该对象。

例如

function wheretoplace(){

    var data = {};    

    var width = window.innerWidth;

    if (width<500)
    { 
        data.placement = 'below';
    }
    else
    {
        data.placement = 'left';
    }

    data.trigger = "myEvent";

    return data;

}

然后在调用wheretoplace的函数中:

$(document).ready(function(){
    $('#my_list li').popover({
        placement: wheretoplace().placement,
        trigger: wheretoplace().trigger
    });
});

这是你想要做的吗?

编辑:回复以下评论:

jsFiddle demo

一样

通过在文档准备就绪时将触发器指定为“手动”,您就可以在单击处理程序中调用$(element).popover("toggle"),这将切换弹出框的外观。