我正在尝试实现以下结果:当用户单击链接时,将在其中打开带有html的嵌入式花式框。当用户输入一个值并点击输入时,它应该更新(删除)我的视图模型,并且花式框应该面对问题。
到目前为止,这是我的代码,我知道我需要重新应用mybindings,但不知道如何做。
HTML:
<div style="display:none">
<div id="inlineManufacturerAdder">
<div style="width:1000px;">
<!-- In deze div alle content -->
<h2>Add new Manufacturer2</h2>
<p>
<form data-bind="submit: vm.addManufacturer">
<input type="text" data-bind="value: vm.newManufacturer, valueUpdate: 'afterkeydown'" placeholder="New Manufacturer">
</form>
</p>
</div>
</div>
</div>
Javascript(打字稿):
export function viewAttached() {
$("a.fancybox-link-add-manufacturer").click(function (e) {
$.fancybox({
content: $('#inlineManufacturerAdder').html(), //this is where it goes wrong, it gets the content and forgets the bindings I guess!
type: 'html'
});
return false;
});
}
如果我以常规方式使用div(将其设置为display:none),那么没有fancybox,一切都可以正常工作。
我该怎么办?我正在使用Durandal!
最佳答案
您不需要重新应用绑定。只是不传递innerHTML内容,而是将element节点(或jquery实例)传递给精美的盒子。
EG:代替:content: $('#inlineManufacturerAdder').html()
做就是了:content: $('#inlineManufacturerAdder')
[更新]
或长一些这些行:
<a href="#inlineManufacturerAdder" class="fancybox-link-add-manufacturer" >Click me</a>
<div id="inlineManufacturerAdder" data-bind="html: msg"></div>
<script>
$(".fancybox-link-add-manufacturer").fancybox();
</script>
此处的示例:http://jsfiddle.net/r83XF/2/
关于javascript - 在Fancybox删除后重新应用绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15545641/