2016-03-03 44 views
0

不會觸發更改事件在代碼庫我的工作有這種類型的回調的結合,其中有些事情發生,只要任何輸入得到改變JQuery的clockpicker輸入

$(document.body).on('change', '.input-sm', function(){ 
... 
}) 

的事情是,一些輸入短信通過clockpicker更改,不會觸發'change'事件。我將如何完成這項工作?理想情況下,我希望clockpicker觸發更改事件。

http://jsfiddle.net/4zg3w5sj/7/

編輯:一個回調被綁定到多個輸入一次與clockpickers,所以無法使用輸入變量來觸發改變事件(除非明確地我在我想輸入迭代)

+1

你可以使用afterDone事件http://jsfiddle.net/4zg3w5sj/2/ – jcubic

+1

,如果你想使用change事件,那麼你可以在'afterDone'中觸發'change()'http://jsfiddle.net/4zg3w5sj/3/ – jcubic

+0

對......當然。我可以在那裏觸發變化! – UrbKr

回答

1

可以使用clockpicker回調

beforeHourSelect:回調函數觸發用戶進行 小時選擇之前

afterHourSelect:回調函數觸發用戶進行 小時選擇

beforeDone後:回調函數觸發時被寫入 輸入

afterDone前:回調函數觸發時被寫入輸入後

input.clockpicker({ 
    autoclose: true, 
    afterDone: function() { 
     input.trigger("change");  
    } 
}); 

我弄明白了這個問題

插件觸發這種改變的活動,但使用triggerHandler代替trigger這意味着你不能在正文中添加監聽器,你直接輸入

// Hours and minutes are selected 
    ClockPicker.prototype.done = function() { 
     raiseCallback(this.options.beforeDone); 
     this.hide(); 
     var last = this.input.prop('value'), 
      value = leadingZero(this.hours) + ':' + leadingZero(this.minutes); 
     if (this.options.twelvehour) { 
      value = value + this.amOrPm; 
     } 

     this.input.prop('value', value); 
     if (value !== last) { 
      this.input.triggerHandler('change'); 
      if (! this.isInput) { 
       this.element.trigger('change'); 
      } 
     } 

     if (this.options.autoclose) { 
      this.input.trigger('blur'); 
     } 

     raiseCallback(this.options.afterDone); 
    }; 

看到這裏修復聽

var input = $('#input-a'); 
    var value = input.val(); 
    // bind multiple inputs 
    $('.myinput').clockpicker({ 
     autoclose: true, 
     afterDone: function() { 
     console.log("test"); 
     } 
    }); 

    // in the actual code it's not tied to an id but to a non-unique class 
    // does not trigger if changed by clock-picker 
    $(".myinput").on('change', function(){ 
     console.log("!!!!") 
    }) 
+0

不幸的是我沒有直接訪問輸入,因爲事件一次綁定到多個輸入。 – UrbKr

+0

所以它實際上更像是這樣的:http://jsfiddle.net/4zg3w5sj/7/ – UrbKr

+0

我已經更新了我的答案 –