2016-11-29 62 views
0

我創建了一個自定義微調器,它在數字後附加一個字符串。自旋事件不會在jquery spinner中第一次觸發

var percent = 5.5%; 
$.widget("ui.pcntspinner", $.ui.spinner, { 
     _format: function(value){ 
      return value + " %"; 
     }, 

     _parse: function(value){ 
      return parseInt(value); 
     } 
    }); 


    $("#spinner").pcntspinner().val(percent); 

微調器附有兩個事件,即聚焦和旋轉。聚焦功能也可以在第一次通話中正常工作,但是旋轉不會在第一時間觸發。只有在任何其他事件觸發後,旋轉纔會被調用。任何想法來解決這個問題?

+0

該代碼似乎寫得很好,不是一個錯誤的代碼。 我認爲這可能是一個異步調用的問題。 在我的代碼中,有些東西寫得很好,不起作用,99%的問題來自於理解程序的流程 – Fedeco

+0

我發佈了對我有用的東西。仍然不確定爲什麼'widgetEventPrefix'需要在微調控件中。 – srishti

回答

0

找到了解決辦法。我仍然不明白爲什麼旋轉沒有得到第一次觸發,但這有助於 -

var percent = 5.5%; 
$.widget("ui.pcntspinner", $.ui.spinner, { 

     widgetEventPrefix: "spin", 
     _format: function(value){ 
      return value + " %"; 
     }, 

     _parse: function(value){ 
      return parseInt(value); 
     } 
    }); 


    $("#spinner").pcntspinner().val(percent); 
1

您擴展Widget所以spin將無法​​正常工作,你需要_spin

$.widget("ui.pcntspinner", $.ui.spinner, { 
    _format: function(value){ 
     return value + " %"; 
    }, 

    _parse: function(value){ 
     return parseInt(value); 
    }, 

    _spin: function(event, ui) { 
     alert('value updated by :' + ui); 

     if(validation){ 
     var result = this._super(event, ui); 
     return result; //<-- important for generic functionality 
     }else 
     { 
     //returning nothing would make value not change 
     } 
    } 
}); 
+0

這不起作用,即使在我的旋轉工具中使用_spin函數,旋轉事件仍未被解僱 – srishti

相關問題