jQuery UI Spinner Up Down事件

时间:2015-02-10 06:20:13

标签: jquery jquery-ui

我正在使用jquery UI微调器,我想知道旋转是上升还是下降我尝试过使用:


$('#days').spinner({
    min:0,
    spin: function(event, ui){
        console.log(ui.value);
        $day = ui.value;
        //Now here I want to detect if the event is up or down and perform 
         another function according to event type
    }
)}; 

这是我的代码,但该事件并非特定于up或down 我想检测它是向上还是向下,以便我可以相应地执行这些事件。谢谢

4 个答案:

答案 0 :(得分:2)

根据@Cerlin Boss的建议,您需要将旧的微调器值与新更改的值进行比较,

 $("#days").spinner({
    spin : function(event,ui){
        //Gives Previous value
        console.log($(this).val());
        //Gives current value
        console.log(ui.value);
        if($(this).val()<ui.value){
            console.log("Increment");
        }else             
           console.log("decrement");
    }
});

请参阅Fiddle

答案 1 :(得分:1)

//Class of spin Up button
$to_element = $(event.toElement).hasClass('ui-icon-triangle-1-n'); 
//SPIN UP if true else SPIN DOWN
if($to_element){
    //ADD
}
else{
    //Subtract
}

@ Cerlin Boss和@Runcorn我尝试了这个和它的工作,我应该使用这个还是作为你的答案?

答案 2 :(得分:1)

这取决于使用。最好的方法似乎是比较值,但可能存在使用字符串的情况。我需要在商店脚本流程中像“项目数:1&gt; 2&gt; 3&gt;个人定价”。在这种情况下,@ BulletProof47很棒,但它不适用于jQuery 2.1.4。我遇到了事件元素类的问题。我不得不把它改成:

if ($(event.currentTarget).hasClass('ui-spinner-down')) {
    console.log('down');
    return false;
    }

if ($(event.currentTarget).hasClass('ui-spinner-up')) {
    console.log('up');
    return false;
    }
PS:我只是回答帖子,但我还不能。你好,这是我的第一篇文章:)

答案 3 :(得分:0)

确定旋转方向比较ui.value和当前值。

    //doc ready
$('#days').spinner({
    min:0,
    spin: function(event, ui){

        var $operation = "none";//no operation happens when value of spinner is Zero

        if($(this).val() != ui.value){
            //overide
            if( ui.value < $(this).val() ){
                $operation = "down";
            }else{
                $operation = "up";
            }               

        } 


        //just for UI
        $('#operation').val($operation)
    }
}); 

这是jsfiddle