旋转事件不会在jquery微调器中第一次触发

时间:2016-11-29 05:35:40

标签: javascript jquery jquery-ui

我创建了一个自定义微调器,它在一个数字后附加一个字符串。

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在第一次调用时工作正常,但旋转不会在第一次触发时触发。只有在触发任何其他事件后才会调用旋转。有什么想法解决这个问题吗?

2 个答案:

答案 0 :(得分: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
       }
    }
});

答案 1 :(得分: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);