我可以更新Twitter Bootstrap数据内容的一部分吗?
问题描述:
我使用了一个popover,我需要动态改变它的内容,但只有一部分。更具体地说,我使用bootstrapx-clickover,所以我不能简单地更新数据内容,因为我的按钮关闭弹出窗口将被删除。我可以更新Twitter Bootstrap数据内容的一部分吗?
我当前的代码如下所示:
<span class="label label-importan" rel="clickover" data-content="NEW TEXT HERE<button class='btn' data-toggle='button' data-dismiss='clickover'>Close</button>" data-original-title="Title">data</span>
如果我只要致电:
....
var el = $(this);
el.attr('data-content', "New Data");
....
这不幸的是删除按钮的代码。有没有办法只更新数据内容的文本,而不是HTML按钮?
答
假设data-content
属性的内容保持不变,为你的榜样,IE总是会有一些文本后跟一个<button>
元素,你可以使用类似这样的代码 -
var attributeContent = el.data('content');
var withoutText = txt.replace(/.*<button/,'<button');
el.data('content','SOME NEW TEXT HERE'+withoutText);
这是一种的低科技解决方案,它取决于价值的一致性,但这可能只适用于您的具体情况。
因为每次都要添加一个新元素(<button>
元素),所以您可能需要在父元素上使用delegate()
函数,以允许您将事件处理程序附加到动态生成的元素。
我遇到了同样的问题。每当我想要改变popover内容时,我只需重新加载所有html内容。 – Rooster
我试过,但我的按钮触发关闭停止工作,当我这样做... – user1216398
您可能需要编写一个自定义事件处理程序关闭它的按钮,并将其放入一个.on()方法 – Rooster