Javascript 如何在mouseover事件中触发引导popover
我有一个html表,其中一行如下所示:Javascript 如何在mouseover事件中触发引导popover,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,我有一个html表,其中一行如下所示: <tr> <td><input type="checkbox" name="check[]" value="265"></td> <td>265</td> <td>NO MATCH</td> <td>http://stackoverflow.com/</td> <td>No<
<tr>
<td><input type="checkbox" name="check[]" value="265"></td>
<td>265</td>
<td>NO MATCH</td>
<td>http://stackoverflow.com/</td>
<td>No</td>
<td>0</td>
<td>f79a8316891</td>
</tr>
265
没有对手
http://stackoverflow.com/
不
0
f79a8316891
我试图构建一个jquery函数,如果我通过表单元格中的URL传递它,它将打开一个bootstrap 2.32 popover。到目前为止,我已经:
$("[data-bind='popover']").popover({
trigger: 'hover',
html: true,
content: function(){
return $(this).data('content');
}
});
$('td').on('mouseover', function(e) {
var contents = $( this ).html() ;
if (contents.match("^http")) {
console.log(contents);
this.innerHTML = '<a href="myreference.html" data-bind="popover"' + ' data-content="'+contents +'"> link </a>';
console.log(this.innerHTML);
}
});
$(“[data bind='popover']”).popover({
触发器:“悬停”,
是的,
内容:函数(){
返回$(this.data('content');
}
});
$('td')。on('mouseover',函数(e){
var contents=$(this.html();
if(contents.match(“^http”)){
控制台日志(内容);
this.innerHTML='';
log(this.innerHTML);
}
});
这一部分的popover是基于
当我将鼠标移到表中的url上时,它会像预期的那样形成一个popover链接。然而,当我把鼠标放在它上面时,就我所能看到的范围而言,没有弹出窗口出现。代码确实有效,但不会触发popover
有趣的是,我还
<a href="myreference.html" data-bind="popover data-content="http://upload.wikimedia.org/wikipedia/commons/a/a5/Flower_poster_2.jpg">Brick</a>
下面是我的表格,这是与一个popover创建工作。我想知道这种行为是否与操作顺序有关,因为popover链接是在DOM设置之后动态创建的。有人能在这里给我建议吗?您需要添加
触发器:“悬停”
将选项对象添加到如下所示:
$('.popover标记>.trigger').popover({
是的,
标题:函数(){
返回$(this.parent().find('.head').html();
},
内容:函数(){
返回$(this.parent().find('.content').html();
},
容器:'主体',
位置:'底部',
触发器:“悬停”
});代码>
这是流行音乐的标题。
这是popover内容
引导弹出框的默认触发器是“单击”事件。您在这里定义的是“在鼠标上方,检查我鼠标下的内容是否是链接,如果是,请定义一个弹出框”,但您的问题是,您从未触发弹出框打开,您只是定义了它,以便在单击时打开它
改变这个
$('.popover-markup').popover(...)
对此
$(this).popover(...)
使“”成为popover(我不是100%确定您可以将a定义为popover,但它似乎应该工作)。然后,在定义了popover选项的代码之后,您可以立即触发一个“click”事件,或者通过发送“show”命令将其打开。最后,您可以通过在定义popover时向选项列表中添加“触发器”:“悬停”来触发它打开。。。当用户不再将鼠标悬停在td元素上时,它将自动隐藏它
//Trigger click
$(this).trigger("click");
//Trigger popover open (probably the better way)
$(this).popover("show");
//Trigger on hover
$(this).popover({
...
trigger: 'hover',
});
总之
$('td').on('mouseover', function(e) {
var contents = $( this ).html() ;
if (contents.match("^http")) {
$(this).popover({
html : true,
title: function() {
return $(this).parent().find('.head').html();
},
content: function() {
return $(this).parent().find('.content').html();
},
container: 'body',
placement: 'bottom'
});
// Trigger the popover to open
$(this).popover("show");
}
});
它不应该是JSFIDLE中的$('.popover markup>.trigger')
吗?这也不起作用。您从未初始化生成到该表单元格中的锚,要使其工作,您必须像另一个一样初始化它。嗨,Franz,我使用的是,无论我将鼠标悬停在链接上还是单击它,都不会出现弹出窗口。我已如上所述修改了问题。感谢您的尝试。谢谢,我将不得不回到这个问题。我通过点击或悬停意识到popover根本不起作用。我已经让popover使用bootstrap 2.32,我已经用你的建议修改了这个问题,我认为你在这方面是正确的,所以我会接受你的答案,但是关于动态创建的弹出框,有一些问题-