使用另一个jQuery动态控制旋钮

时间:2014-07-23 18:18:12

标签: javascript jquery jquery-ui return-value jquery-knob

我有两个旋钮,我想在移动第二个时动态控制第一个的值。

到目前为止,我有: (第一把手)

$('#inf-knob').knobRot({

                    classes: ['inf-knob'],
                    frameWidth: 250,
                    frameHeight: 250,
                    frameCount: 100,
                    detent: false,                  
                    discreteSteps: false,
                    stepCount: 0,
                    minimumValue: 0,
                    maximumValue: 2,
                    dragMultiplier: 0.01,
                    hideInput: true,
});

$('#inf-knob').on('knobdrag', function(e){
    //called until mouse button released

                    var dial = (500 * $('#inf-knob').val()).toFixed(1);

                    document.getElementById('freqmain').value = dial + " Hz";    
                    document.getElementById('freqmain2').value = dial;                   

}); 

(第二个旋钮在移动时应动态更改第一个旋钮)

$('#black-knob').on('knobdrag', function(e){

                  gainNode.gain.value = this.value;
                  console.log(this.value * 2);

                  $('#inf-knob').val(this.value * 2);

}); 

我也尝试过使用:

document.getElementById('inf-knob').value = this.value;

没有结果。

我想念的是什么?

由于

1 个答案:

答案 0 :(得分:1)

正如KnobRot的文件所述,你应该使用:

返回指定旋钮的值:

$('myselector').knobRot('get')

设置指定旋钮的值或旋钮(将与集合一起使用):

$('myselector').knobRot('set', value)

然后你需要触发KnobRot刷新。因此,在您的情况下,您可以将其用作:

 $('#black-knob').knobRot({           
    }).on('knobdrag', function(e){
        console.log(this.value * 2);
        $('#inf-knob').knobRot('set', this.value);
        $('#inf-knob').trigger('knobrefresh');
    }); 

而且,这是Working JsFiddle Demo

P.S

  1. 小提琴演示没有显示Knob的图形图标为i 无法弄清楚KnobRot所要求的所有内容。但是你 可以拖动悬停在文本字段下方并在展开光标时拖动 出现了。
  2. 我从未使用过这种类型的插件。还有插件文档 似乎很差,不经常更新。为什么不使用不同的 插件前言 jQuery-Knob democode base