2016-04-19 17 views
0

FilteringSelectで選択が実行されるたびに発生しますが、発生させないようにするためにonChangeイベントを追加しようとしました。私はon関数でchangeとonChangeの両方の動作をさせようとしていません。 FilteringSelectのパラメータとしてonChangeを使用しようとしましたが、どちらも機能しませんでした。Dojo FilteringSelectにonChangeイベントを追加する

私はDojo 1.10を使用しています。

require(["dijit/form/FilteringSelect", "dojo/store/Memory", "dojo/dom", "dojo/on", "dojo/domReady!"], 
    function(FilteringSelect, Memory, dom, on) { 
    var filteringSelect = new FilteringSelect({ 
     id: "zoom", 
     name: "zoom", 
     value: "z", 
     intermediateChanges: true, 
     store: new Memory({ 
     data: [ 
      {name:"Zoom", value:"z"}, 
      {name:"50%", value:".5"}, 
      {name:"75%", value:".75"}, 
      {name:"100%", value:"1"}, 
      {name:"125%", value:"1.25"}, 
      {name:"150%", value:"1.5"}, 
      {name:"175%", value:"1.75"}, 
      {name:"200%", value:"2"} 
     ] 
     }), 
     searchAttr: "name" 
    }, "zoomDiv").startup(); 
    on(filteringSelect, 'change', function(value) { 
     console.log(value); 
    }); 
}); 
+0

プロパティを見ることができ、一貫したイベントのために

私はあなたのコードのバイオリンを試してみました。私が見つけたのは、 'filteringSelect'の作成とその' startup'を分離する必要があるということです。それらが分離している場合、それはうまく動作します(ただし、 'value'は明白な理由で常に定義されていません)。私はDOJOのサイトの例と同じ理由が何であるかはわかりませんが、彼らは単一のステートメントに入っています。 – Himanshu

答えて

0

dijit/form/FilteringSelectが異常なAPIです。 onChangeは、ユーザがテキストボックスに何かを入力したときに起動されます。自動完了のために開いたリストで何かを選択すると、ではなくが使用されます。あなたはdisplayedValue

require(["dijit/form/FilteringSelect", "dojo/store/Memory", "dojo/dom", "dojo/on", "dojo/domReady!"], 
 
    function(FilteringSelect, Memory, dom, on) { 
 
    var filteringSelect = new FilteringSelect({ 
 
     id: "zoom", 
 
     name: "zoom", 
 
     value: "z", 
 
     intermediateChanges: true, 
 
     store: new Memory({ 
 
     data: [{ 
 
      name: "Zoom", 
 
      value: "z" 
 
     }, { 
 
      name: "50%", 
 
      value: ".5" 
 
     }, { 
 
      name: "75%", 
 
      value: ".75" 
 
     }, { 
 
      name: "100%", 
 
      value: "1" 
 
     }, { 
 
      name: "125%", 
 
      value: "1.25" 
 
     }, { 
 
      name: "150%", 
 
      value: "1.5" 
 
     }, { 
 
      name: "175%", 
 
      value: "1.75" 
 
     }, { 
 
      name: "200%", 
 
      value: "2" 
 
     }] 
 
     }), 
 
     searchAttr: "name" 
 
    }, "zoomDiv"); 
 
    filteringSelect.startup(); 
 
    filteringSelect.watch('displayedValue', function(property, oldValue, newValue) { 
 
     alert(property + ':' + newValue); 
 
    }); 
 

 
    });
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script> 
 
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css"/> 
 
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/tundra/tundra.css"/> 
 
<div class="tundra"> 
 
<div id="zoomDiv"></div> 
 
</div>

関連する問題