2010-12-28 8 views
1

私は、ユーザーがスクロールやズームにより、特定のオブジェクトをブラウズするアプリケーションを構築しています。ズームレベルを変更するために、私は "dijit.form.Horizo​​ntalSlider"オブジェクトを実装しました。ユーザーがsilderの位置を変更するたびに、私は「のonChange」コールをキャッチし、それで何かを行うことができます。道場スライダー:更新値を動的に

しかし、ユーザーはビューゾーン内でダブルクリックすることでズームインすることもできます。この時点で、スライダは自動的に新しいズームレベルを反映するように位置を変更する必要があります。

私の質問は以下の通りです:私は道場のsilderの位置を更新するために、私はJavaScriptで呼び出す必要がありますどのような機能や方法?ここで

はsilderオブジェクトを作成するコードです:

var zoomSlider = new dijit.form.HorizontalSlider({ 
     name: "zoom_slider", 
     id: "zoom_slider", 
     value: 0, 
     minimum: 0, 
     maximum: 19, 
     discreteValues: 20, 
     intermediateChanges: false, 
     style: "width: 160px;", 
     onChange: function(value) { 
      brwsr.view.zoomTo(value); 
     } 
    }, 
    "zoom_slider"); 
navbox_silder.appendChild(zoomSlider.domNode); 

答えて

2

まずあなたがウィジェットのホールドを取得し、このようにアクセスするためにid:'zoom_slider1'のようなあなたの例のconfigオブジェクトのidプロパティを定義する必要があります。

dijit.byId('zoom_slider1').attr('value',whateverthenewvalueis); 

Dijit Basicsを参照してください。

+0

Firebugは私に言った:dijit.byId( "zoom_slider")は未定義です。私はdijit.byId(「dijit_form_Horizo​​ntalSlider_0」)を使用することができたと私は別の場所で他のいくつかのスライダーを作成するときには解除されます。 – xApple

+0

ああ、 'id: 'zoom_slider1''のように、あなたのサンプルの設定オブジェクトにidプロパティを定義し、それを' dijit.byId(' zoom_slider1 ') 'で使う必要があります。私はそれをnameプロパティと混在させました。 – DanMan

+0

いいね! idフィールドはうまくいきます。私はそれを含めるために私の質問を編集し、答えの残りの部分を見つけました。ありがとう。 – xApple

0

DanManがスライダ作成コードに「id」フィールドを追加した後、私はdojoのjavascriptファイルを掘り出し、適切な文書化されていない内部メソッドを見つけました。これはそれです:

dijit.byId("zoom_slider")._setValueAttr(newvalue); 
+0

私は値を設定する正しい方法で私の答えを更新しました。 – DanMan

関連する問題