2016-11-29 5 views
0

数字の後に文字列を追加するカスタムスピナーを作成しました。jqueryスピンナーで初めてスピンイベントが発生しない

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

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


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

スピナーには、フォーカスアウトとスピンという2つのイベントが付いています。最初の呼び出しでもフォーカスアウトはうまく動作しますが、スピンは初めて発生しません。他のイベントが発生して初めて、スピンが呼び出されます。どのようなアイデアはこの問題を解決するには?

+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

あなたはそう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

関連する問題