2016-11-29 4 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); 

У счетчика есть два события, прикрепленные к нему, т.е. фокусировка и вращение. focusout отлично работает и при первом вызове, но при первом запуске функция запуска не запускается. Только после того, как какое-либо другое событие было вызвано, вызывает вызов спина. Любая идея решить эту проблему?

+0

Код кажется хорошо написанным, это не плохой код. Я думаю, что, возможно, проблема асинхронных вызовов. Когда в моем коде что-то хорошо написано и не работает, проблема 99% возникает из понимания потока программы – Fedeco

+0

Я опубликовал то, что сработало для меня. Все еще не уверен, что для виджета spinner требуется '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

Смежные вопросы