如何将 HTML5 拖放与 KnockoutJS 结合使用?

2023-12-30

我似乎无法绑定到 html5 拖放事件。

以下是来自模板的示例:

<script id="tabsTemplate" type="text/html">
    <div class="dropzone" for="tab"
        data-bind="event:{dragover: function(event){event.preventDefault();},
                          dragenter: function(event){event.target.addClass('dragover'); event.preventDefault();},
                          dragleave: function(event){event.target.removeClass('dragover'); event.preventDefault();}}
                          drop: function(event){console.log('blahblah!')}"></div>
    <h1 class="tab" draggable="true"
      data-bind="attr: {selected: $data.name === $item.selected()},
                 click: function(){$item.selected($data.name)},
                 event:{ dragstart: function(event){console.log('blah!!')},
                         dragend: function(event){document.getElementsByClassName('dragover')[0].removeClass('dragover')}}">
        ${name}

        <img src="icons/close-black.png" class="close button" role="button"
            data-bind="click: function(e){$item.close($data)}">
    </h1>
</script>

我所拥有的应该按预期工作......只要我将它们设为正常的内联,它就可以。但是,其他绑定就不起作用了!

我收到此错误消息:

未捕获的语法错误:意外的标记“||” jquery-tmpl.js:10

这里发生了什么?我做错了什么吗?


好的,我已经解决了。看来我错过了文档中所说的,在淘汰赛中,默认情况下它会使所有事件阻止默认/返回 false。所以我所要做的就是让我的 Dragstart 处理程序返回 true,现在它可以工作了。唷!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 HTML5 拖放与 KnockoutJS 结合使用? 的相关文章