当淘汰观察值变化时如何刷新线索

时间:2013-02-01 10:52:47

标签: javascript jquery-ui knockout.js datepicker cluetip

如何改变cluetip中的内容。

 $('a.cal_box').cluetip({local:true, hideLocal: true ,onShow: function(ct, ci){ this.calendar = $('<div>').datepicker({ beforeShowDay: daysToMark,onSelect: function(dateText, inst) { 
  var date = $(this).datepicker( 'getDate' ); 
  //var c = ko.contextFor($("#KnockOutCalendar")[0]);
    calendarObject.$data.Date(date.getFullYear()+'-'+date.getMonth()+'-'+date.getDate());   
    calendarObject.$data.Time(date.getHours());
    //$('a.cal_box').cluetip({local:true,activation:'hover', hideLocal: true, sticky: true, arrows: true, cursor: 'pointer',width:970, height:530}); 
  } }).appendTo(ci); }, onHide: function(ct, ci){ this.calendar.datepicker( "destroy" ).remove(); }, sticky: true, arrows: true, cursor: 'pointer',width:970, height:530});

当cluetip调用cal_box点击时。

当我点击日历时,我会在其中显示日历和待办事项列表我更改了ko.observable()

我只是想当ko.observable的值改变时它应该刷新cluetip框但是应该保留日历所在的位置只是todo列表应该根据该日期refrsh。

<div id="KnockOutCalendar" data-bind="foreach: {data:Calendar,afterRender: myPostProcessingLogic}">
             <!-- ko if: $parent.ChangeDate(dstart) == $parent.Date() -->
            <div class="timeline_row">

              <div class="timeline_row_heading" ><span data-bind="text: $parent.ChangeTime(dstart)"></span>:00</div>
              <div class="timeline_row_content showcalen_entry"><span data-bind="text: dstart"></span> - <span data-bind="text: subject"></span></div>

            </div>
            <!-- /ko -->
            </div>

在这个foreach中我显示日期,当事件有关于该事件的数据时,如果它显示timeline_row否则它应该是空白

我想要的是当我点击一个日期,当它更改self.Date(clickedDate)运行时的值更改为具有新数据的功能警报但cluetip保持与我点击cal_box时初始化时相同我希望它重新初始化,或者你再说一遍cl_box但我不是这样做的。

1 个答案:

答案 0 :(得分:0)

最好的方法是使用更新功能创建自定义绑定,您可以访问元素和observable,以便从那里更新cluetip。每当值变异时,update函数就会触发。