javascript - 是否可以使多个 Bootstrap 弹出窗口更干?

标签 javascript jquery html twitter-bootstrap

我遇到了一个问题,一张表中有超过 10 个弹出窗口。它们都应该在悬停时显示弹出窗口,并且具有相似的 html,但内容有所不同。我将其设为最简单的方法,但我觉得一定有更聪明的方法来做到这一点。

是否可以让这个 js 代码更 DRY?

 $('#static-pop-1').popover({
        'trigger': 'hover',
        'placement': 'bottom',
        'html': true,
        'content': '<div class="static-popover"><span>Hey!</span></div>'
    });

 $('#static-pop-2').popover({
        'trigger': 'hover',
        'placement': 'bottom',
        'html': true,
        'content': '<div class="static-popover"><span>Hey 2!</span></div>'
    });

http://jsfiddle.net/axt63orn/

最佳答案

假设您不希望弹出窗口只说Hey 1Hey 2 等,但实际上在每个内容中设置了不同的内容,但保留其余内容设置相同,你可以做

var settings = {
    trigger   : 'hover',
    placement : 'bottom',
    html      : true
}

$('#static-pop-1').popover($.extend({}, settings, {
    content: '<div class="static-popover"><span>Hey!</span></div>'
}));

$('#static-pop-2').popover($.extend({}, settings, {
    content: '<div class="static-popover"><span>Hey 2!</span></div>'
}));

$('#static-pop-3').popover($.extend({}, settings, {
    content: '<div class="static-popover"><span>Hey 3!</span></div>'
}));

FIDDLE

或者你可以使用一个函数

function setting(text) {
    return {
        trigger   : 'hover',
        placement : 'bottom',
        html      : true,
        content   : '<div class="static-popover"><span>'+text+'</span></div>'
    }
}

$('#static-pop-1').popover(setting('Hey!'));
$('#static-pop-2').popover(setting('Hey 2!'));
$('#static-pop-3').popover(setting('Hey 3!'));

FIDDLE

关于javascript - 是否可以使多个 Bootstrap 弹出窗口更干?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28136787/

相关文章:

jquery - h3 在淡入或淡出后移动

javascript - Firebase 在 React Native 数据获取中返回 "undefined"值

javascript - 在 td 元素中查找文本的功能不起作用

javascript - 即使加载后,jsTree 也不会 open_all

c# - 删除或转换 ' 为 (')

php - 在php-mysql中保存并迭代数组

javascript - Node.js puppeteer - 如何设置导航超时?

javascript - 没有点击就触发了onclick事件

javascript - 单击时添加事件监听器,选择不是 `this`

仅限 JQuery 移动样式