मुझे नॉकआउट जेएस के साथ समस्या है और सूची के रूप में एक अवलोकन योग्य सरणी प्रदर्शित करना; पहले से हटाए गए एनीमेशन चलते समय कोई आइटम जोड़ते समय, हटाए गए तत्व को एनीमेशन समाप्त होने तक इसकी स्थिति में रहने के बजाय सूची के नीचे ले जाया जाता है और तत्व हटा दिया जाता है। http://jsfiddle.net/bPP5Q/8/नॉकआउट जेएस - पहले अवलोकन करने योग्य सरणी में आइटम जोड़ने के दौरान एनीमेशन हटाएं
किसी को भी पता है मैं यह कैसे हल कर सकते थे:
यहाँ समस्या थोड़ा बेहतर समझाने के लिए एक jsfiddle है?
जावास्क्रिप्ट:
jQuery(function ($) {
var ViewModel = function (data) {
var self = this;
self.data = ko.observableArray(data);
self.removeLine = function (elem) {
if (elem.nodeType === 1) $(elem).fadeOut(3000, function() {
$(elem).remove();
});
}
self.addLine = function (elem) {
if (elem.nodeType === 1)
$(elem).hide().fadeIn(3000);
}
self.removeItem = function() {
self.data.remove(function(item) { return item.test && item.test == 2; });
}
self.addItem = function() {
self.data.splice(1, 0, { test: 9 });
}
self.addremove = function() {
self.removeItem();
var id = setInterval(function() {
self.addItem();
clearInterval(id);
},1000);
}
}
var vm = new ViewModel([{ test: 9 }, { test: 2 }, { test: 1 }, { test: 1 }, { test: 1 }, { test: 1 }, { test: 1 }]);
ko.applyBindings(vm);
});
HTML:
<button id="button" data-bind="click: addremove">Click</button>
<table id="grid">
<tbody data-bind='template: { foreach: data, afterAdd: addLine, beforeRemove: removeLine }'>
<tr>
<td data-bind="text: test"></td>
<td>
</td>
</tr>
</tbody>
</table>
यह 2.1 में ठीक से काम करता है। 2.2 में हमने यह पहचानने के लिए कार्यक्षमता जोड़ा कि एक आइटम इसे हटाने और इसे वापस जोड़ने के बजाय स्थानांतरित किया गया था। ऐसा लगता है कि इस मामले के लिए आप एक समस्या पैदा कर रहे हैं जिसके साथ आप काम कर रहे हैं। मैं इसे थोड़ा और देख लूंगा। –
मैं 2.1 तक डाउनग्रेड कर चुका हूं और यह बहुत अच्छा काम करता है, लेकिन इसके बजाय कुछ अन्य समस्याएं हैं जो 2.2 में मौजूद नहीं थीं, इसलिए यदि यह किसी अन्य तरीके से हल किया जा सकता है तो यह बहुत अच्छा होगा! – Cyriuz
इस पर कोई अपडेट? मुझे नॉकआउट 3.0 के साथ एक ही समस्या है, आप यहां मेरा उदाहरण देख सकते हैं: http://jsfiddle.net/davertron/3ucVg/1/ – davertron