Dav*_*lla 2 javascript jquery twitter-bootstrap jquery-select2
我正在编写一个基于Django和Bootstrap的应用程序,它以缩略图的形式显示媒体文件,以及描述和标签.我希望这些标签可以设置为常规的Bootstrap标签,并且可以点击.
我正在使用X-editable单独编辑内联的描述和标签(通过Select2)并将它们发送回服务器.除了标签之外,这很有效.我无法达到:
第3步(向服务器发送干净的数据)是我可能想到的或可能是另一个问题的主题.
这个小提琴应该说明我正在尝试做的事情和结果:请注意,当单击编辑按钮时,窗口小部件会加载带有不需要的标记的数据.

<div class="controls controls-row">
<span class="tags" id="tags-editable-1" data-toggle="manual" data-type="select2" data-pk="1" data-original-title="Enter tags">
<a href="#"><span class="label">apples</span></a>
<a href="#"><span class="label">oranges</span></a>
<a href="#"><span class="label">pie</span></a>
</span>
<a href="#" id="tags-edit-1" data-editable="tags-editable-1" class=""><i class="icon-pencil"></i></a>
</div>
Run Code Online (Sandbox Code Playgroud)
$('.tags').editable({
placement: 'right',
select2: {
tags: ['cake', 'cookies'],
tokenSeparators: [",", " "]
},
});
$('[id^="tags-edit-"]').click(function(e) {
e.stopPropagation();
e.preventDefault();
$('#' + $(this).data('editable') ).editable('toggle');
});
Run Code Online (Sandbox Code Playgroud)
所以实际的问题是步骤2和4:我如何剥离发送到x-editable小部件的标记并将其重新添加到它返回的结果中?
我经过一些实验后发现,虽然解决方案不是100%完美.
data-value在HTML中使用该属性,如data-value="apples, oranges, pie".
display: function(value) {
$.each(value,function(i){
// value[i] needs to have its HTML stripped, as every time it's read, it contains
// the HTML markup. If we don't strip it first, markup will recursively be added
// every time we open the edit widget and submit new values.
value[i] = "<span class='label'>" + $('<p>' + value[i] + '</p>').text() + "</span>";
});
$(this).html(value.join(" "));
Run Code Online (Sandbox Code Playgroud)
shown回调..
$('.tags').on('shown', function() {
var editable = $(this).data('editable');
value = editable.value
$.each(value,function(i){
value[i] = $('<p>' + value[i] + '</p>').text()
});
});
Run Code Online (Sandbox Code Playgroud)
这个小提琴显示了代码和一个工作示例.
| 归档时间: |
|
| 查看次数: |
7862 次 |
| 最近记录: |