我已經實現了淘汰賽foreach綁定,在同一頁面中有多個模板,其中一個示例在此處給出,我感興趣的是在找出塊的完成時間渲染,我試過afterRender
和afterAdd
,但我想它運行每個元素,而不是整個循環完成後。成功回調後knockout.js完成渲染所有元素
<ul data-bind="foreach: {data: Contacts, afterAdd: myPostProcessingLogic}">
<li>
<div class="list_container gray_bg mrgT3px">
<div class="list_contact_icon"></div>
<div class="contact_name"><span data-bind="text: first_name"></span> <span data-bind="text: last_name"></span></div>
<div class="contact_number"><span data-bind="text: value"></span></div>
<div class="callsms_container">
<a href="#notification-box" class="notifcation-window">
<div class="hover_btn tooltip_call">
<div class="hover_call_icon"></div>
<span>Call</span></div>
</a>
<a class="sendsms" href="#sendsms" rel="#sendsms">
<div class="hover_btn tooltip_sms">
<div class="hover_sms_icon"></div>
<span>SMS</span></div>
</a>
<a href="#">
<div class="hover_more_btn"></div>
</a>
</div>
<!-- close callsms container -->
<div id="notification-box" class="notification-popup">
<a href="#" class="close"><img class="btn_close" src="images/box_cross.png" /></a> <img class="centeralign" src="images/notification_call.png" /> <span>Calling... +44 7401 287366</span> </div>
<!-- close notification box -->
<!-- close list gray bg -->
<div class="tooltip_description" style="display:none" id="disp"> asdsadaasdsad </div>
</div>
</li>
</ul>
我有興趣找出循環完成渲染時的成功回調。
這裏是我的afterAdd
函數,它基本上附加了一些jQuery事件,沒什麼。
myPostProcessingLogic = function(elements) {
$(function(){
$(".list_container_callog").hover(function(){
$(".callsms_container", this).stop().animate({left:"0px"},{queue:false,duration:800});
}, function() {
$(".callsms_container", this).stop().animate({left:"-98%"},{queue:false,duration:800});
});
});
}
在此先感謝,並告訴我有一個成功回調:)
我已經使用過。問題在於它在每個元素呈現後都會回調,而我有興趣瞭解所有元素何時完成呈現 – rohitarora
@ user1487459我更新了特定案例的答案。 –
是的,它是相同的我有一個數組的10個項目和它的渲染10次。我得到的問題是每個渲染後執行與每個元素,我只是希望它在所有元素顯示後執行的JS。 – rohitarora