【问题标题】:Manually trigger Bootstrap tooltip for checkbox elements手动触发复选框元素的引导工具提示
【发布时间】:2014-07-03 17:20:26
【问题描述】:

我正在为我的 Web 应用程序构建一个“自定义”验证模块。我正在为我的所有复选框元素附加一个更改侦听器。当更改事件发生时,我检查是否需要输入 - 如果未检查元素,则元素验证失败。当我手动单击任何给定的复选框时,这工作得很好。工具提示按计划显示/销毁。

我试图在单击提交按钮时获得相同的功能。系统看到工具提示(应该)被渲染 - 但事实并非如此。这就像我需要触发一个点击事件,但如果我在一个复选框元素上这样做 - 该元素将被选中。不完全是任何用户想要的功能。我不确定如何在不点击任何内容的情况下通过点击。

如果任何给定元素无效,我会这样调用我的工具:

Validation.js

Tooltip.initialize($element, {'trigger': 'click', 'placement': 'bottom', 'title': Messages[$element.attr('name') + 'Required']});

这是初始化和显示任何给定工具提示的代码:

Tooltip.js

initialize: function($element, options) {
        (Tooltip.debug) ? console.log('-- initialize --') : null;
        (Tooltip.debug) ? console.log('tooltip for: ' + $element.attr('name')) : null;

        var that = this;

        $('#' + $element.attr('name')).tooltip({
            'placement': options.placement,
            'title': options.title,
            'trigger': options.trigger
        }).on({
            'blur': function() {
                switch ($element.attr('type'))
                {
                    case 'checkbox':

                        break;
                    case 'email':
                        that.show($element);
                        break;
                    case 'password':
                        that.show($element);
                        break;
                    case'tel':
                        that.show($element);
                        break;
                    case 'text':
                        that.show($element);
                        break;
                    default:
                        break;
                }
            },
            'focus': function() {
                that.destroy($element);
            }
        });

....

show: function($element) {
        $('#' + $element.attr('id')).tooltip('show');
    },
destroy: function($element) {
        $('#' + $element.attr('id')).tooltip('destroy');
    }

....

【问题讨论】:

  • 显示任何 javascript 错误?是否 $('#id').tooltip('show');工作?为什么 case 'checkbox': 为空?如果您可以设置一个简化的 jsfiddle 也很棒,这样我们就可以看到出了什么问题。
  • 控制台中没有显示错误。复选框是空的,因为那是我目前挂断的地方。 :) Here is a JSFiddle. 一切都被分成不同的模块,所以我试图把一切都放在一个文件中。请原谅看起来有很多 JS 的东西。
  • 我看了看,但代码太多,我无法筛选。我的建议是为自己节省大量时间和麻烦,并使用以下内容:bootstrapvalidator.com

标签: jquery twitter-bootstrap twitter-bootstrap-tooltip


【解决方案1】:

不确定您要达到的目标,因为您没有在小提琴中包含任何样本。但也许您可以使用mouseover() 而不是使用click() 事件。 http://api.jquery.com/mouseover/

【讨论】:

  • Here is a JSFiddle. 一切都被分成不同的模块,所以我试图把一切都放在一个文件中。请原谅看起来有很多 JS 的东西。
猜你喜欢
  • 1970-01-01
  • 2014-09-18
  • 2016-07-08
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
相关资源
最近更新 更多