gpt4 book ai didi

javascript - Dragstart 事件打破了顺序

转载 作者:行者123 更新时间:2023-11-28 00:11:48 26 4
gpt4 key购买 nike

下面是我的代码:

<body>
<table border="1">
<tbody data-bind="foreach: $root.list1">
<tr data-bind="event:{dragstart: $root.dragStart, dragend: $root.dragEnd}" draggable="true">
<td data-bind="text: Id"> </td>
<td data-bind="text: Name"> </td>
</tr>
</tbody>
</table>
<table border="1" data-bind="event:{drop: $root.dragDrop, dragover: $root.dragOver}">
<tbody data-bind="foreach: $root.list2">
<tr>
<td data-bind="text: Id"> </td>
<td data-bind="text: Name"> </td>
</tr>
</tbody>
</table>
</div>
</body>
var MyViewModel = function () {
var self = this;
self.init = function () {
// Seed some data to list1 and list2.
}
self.list1 = ko.observableArray([]);
self.list2 = ko.observableArray([]);
self.draggingValue = null;


self.dragStart = function(customer){
console.log('dragstart');
};

self.dragEnd = function(){
console.log('dragend');
};

self.dragDrop = function(){
console.log('dragdrop');
};
self.dragOver = function(){
console.log('dragover');
};
}

var Customer = function (Id, Name) {
var self = this;
self.Id = ko.observable(Id);
self.Name = ko.observable(Name);
}

$(document).ready(function () {
var model = new MyViewModel();
model.init();
ko.applyBindings(model);
});

当我运行此页面时,控制台仅显示dragstart。如果我这样改变我的html:

<tr data-bind="event:{dragend: $root.dragEnd}" draggable="true" ondragstart='console.log("dragstart")'> 

那么我的代码就可以正常工作了。我认为这个问题是KO造成的。

最佳答案

您的事件处理程序 need to return true否则它们将阻止默认操作。

self.dragStart = function (customer) {
console.log('dragstart');
return true;
};

http://jsfiddle.net/j35kfgdx/

关于javascript - Dragstart 事件打破了顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30815147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com