0
我正在創建一個基於jQuery UI範圍滑塊的計算器,並具有可用的設置。我在我的應用程序中的bindEvents功能結合的滑塊slide
事件:爲什麼我的jQuery UI範圍滑塊不響應pubsub事件?
// this is where I bind all slide events
bindEvents: function() {
// hold on to the value of this
var self = CloudCalc;
// bind the slider's slide event to a data event
self.sl.on('slide', this.setSliderOutputValue);
}
,然後這裏是忠實地執行我的事件處理程序:
setSliderOutputValue: function (event, ui) {
// hold on to the value of this
var self = CloudCalc;
// show the ui output value on slide event
self.output.html(ui.value + " INSTANCE");
}
現在我想觸發多個事件當用戶滑動滑塊時。所以我想用觀察者模式在此設置像這樣(使用addyosmani的發佈 - 訂閱插件):
bindEvents: function() {
// hold on to the value of this
var self = CloudCalc;
// bind the slider's slide event and publish it
self.sl.on('slide', $.publish('slider/moved'));
}
這裏的訂閱:
subscriptions: function() {
$.subscribe('slider/moved', this.setSliderOutputValue);
}
所以當該訂閱調用setSliderOutputValue
事件,我得到控制檯錯誤說:
Uncaught TypeError: Cannot read property 'value' of undefined
這意味着參考UI屬性不獲取傳遞給setSliderOutputValue
事件。
如何通過ui屬性?如果我做錯了,請糾正我。