2017-03-02 15 views
0

ので(コードが技術的にtypescriptですです)ドロップダウンでクリックイベントを検出する方法はありますが、Javascriptのオプションメニューには表示されません(またはその2つを区別する)?

this.highElement.click(() => { 
    console.log(event); 
}); 

このイベントがトリガされるように、両方の私は、選択ボックスをクリックすると、いつ私は1つをクリックしてくださいだから私は、私はクリックハンドラを添付して私のコードでは、単純なドロップダウンを持っています(私が意味するものを示すJsのフィドルはhttps://jsfiddle.net/Kolichikov/zmdL6q2d/です)。私が理想的に思うのは、アイテムの結果リストではなく、選択ボックス自体をクリックしたときだけイベントが発生することです。

オプションthis.highElement.on("click", "option",() => { console.log("option!"); });の委任されたイベントを設定しようとしましたが、動作しませんでした。

MouseEventのプロパティが異なる(アイテムがクリックされたときにマウス座標が表示されない)ことに気がつきましたが、これは変更可能なブラウザの実装のようです。

2つのイベントを適切に区別する方法はありますか?

答えて

0

私はあなたに2つのオプションを与えるだろう、あなたはそれがあなたのために最善のものを選ぶには:

まず、あなたがこのような2つのイベントを区別することができます。イベントは時に異なるターゲットを持ってい

$("#selectItem").click(function(event){ 
    if (event.target.id == 'selectItem') 
     console.log(event) 
}); 

それは選択をクリックしてから、オプションを選択することから戻る。

しかし、私はあなたが変更イベント

$("#selectItem").change(function(event){ 
    console.log(event) 
}); 

を使用した場合、アイテムを選択した場合にのみ、それが発火するより明確になると思います。あなたが必要とするものに応じて、これはより良いことがあります。

関連する問題