0
<td><span data-bind="text: ID, event: { mouseover: $parent.displayHearingsCaseID }" class="hearingIDCell"></span></td>

在上面表格单元格的鼠标悬停事件中,我正在调用显示弹出框的 displayHearingsCaseID 函数。

$(event.currentTarget).popover({ content: caseIDString, trigger:'hover',title: "Case ID" });

但我注意到,在多次悬停表格单元格时,会出现弹出框。为什么它没有立即出现?

event 是通过敲除传递给 displayHearingsCaseID 函数的参数,并且为函数内的每一行计算 caseIDString。

4

3 回答 3

1

这是显示弹出框的示例 javascript 代码,

        $(function () {
            var showPopover = function () {
                $(this).popover('show');
            }
            , hidePopover = function () {
                $(this).popover('hide');
            };

            $('#tbName').popover({
                content: 'Enter first three letters of name for search',
                trigger: 'hover',
                placement:'top'
            })
            .focus(showPopover)
            .blur(hidePopover)
            .hover(showPopover, hidePopover);
        });
于 2013-10-23T15:37:56.170 回答
1

不知何故触发器:'悬停'不起作用。使用 trigger:'click',弹出框会立即出现在表格单元格的 mouseover 事件上。但是我必须在使用悬停时隐藏先前显示的弹出框:'click'。

vm.displayHearingsCaseID = function (hearing, event) {
        if (hearing.CaseIDs() == null) return;
        $(event.currentTarget).popover({ content: hearing.CaseIDs(), trigger: 'click', title: "Case ID" }).mouseout(function (e) {
            $(this).popover('hide');
        });

   };
于 2013-10-24T14:04:43.730 回答
1

@user2585299 的回答让我朝着正确的方向前进,但如果您使用“手动”触发器然后明确“显示”弹出框,它会更有意义。

vm.displayPopover = function (obj, event) {
    $(event.currentTarget).popover({
        content: obj.some_attr,
        trigger: 'manual',
        title: "Title"
    }).mouseout(function (e) {
        $(this).popover('hide');
    }).popover('show');
};

并在您的标记中:

<span data-bind="text:foo, event:{mouseover:$parent.displayPopover}"></span>
于 2013-11-07T03:36:29.030 回答