2017-03-20 7 views
0

しかし、問題は、onclickイベントを閉じる入力タグぼかしでulを開き、それぞれdisplay noneとblockを使用してulをフォーカスで開きます。入力ぼかしで毎回ぼかしているので、ulのイベントリスナーは機能していません。ここにコードがあります。私は多くの入力タグを持っています、そして、各入力タグは、入力フィールドに値を挿入するためにリスト要素を選択できるulを持っています

var selectTime= document.querySelectorAll("input"); 
    for(var i=0; i<selectTime.length; i++) { 
       selectTime[i].onfocus = function(event) { 
        var el = event.currentTarget; 
       el.nextElementSibling.style.display = "block";//ul is show 
      } 
    } 
    for(var i=0; i<selectTime.length; i++) { 
       selectTime[i].onblur = function(event) { 
       var el = event.currentTarget; 
       el.nextElementSibling.style.display = "none";//ul is none 
       } 
    } 
    for(i=0;i<ulElements.length;i++){ 
    ulElements[i].onclick= function(event){ 
       if (event.target.tagName === 'LI'){ 
        console.log(event.target); 
       } 
     } 
    } 

しかし、ULのLiから選ばれた元素は、ここでは

コンソールに表示されていない click-eventとしてデモ https://jsfiddle.net/fzbx36zf/

+0

- あなたは、実行可能デモ/スニペットまたは[JSFiddle](https://jsfiddle.net/)を共有することはできますか? [最小限の、完全で、確認可能なexample_を作成する](http://stackoverflow.com/help/mcve) – Rayon

+0

それは何も表示されていません、私は問題が私がリストulをなしとしていると思うので、何も表示されていません。大丈夫私はデモを共有します – Thala

+0

jsfiddleのデモを追加 – Thala

答えて

0

input要素以外の場所に呼び出されている、onblurハンドラが故にonclickul要素に呼び出されます実行されていません。

setTimeout内側onblurハンドラーが手助けします!

var ulClicked = false; 
 
document.querySelector('input').onfocus = function() { 
 
    document.querySelector('ul').style.display = "block"; 
 
} 
 
document.querySelector('input').onblur = function(e) { 
 
    setTimeout(function() { 
 
    if (!ulClicked) { 
 
     document.querySelector('ul').style.display = "none"; 
 
    } else { 
 
     alert('UL clicked'); 
 
    } 
 
    ulClicked = false; 
 
    }, 100); 
 
} 
 
document.querySelector('ul').onclick = function(event) { 
 
    ulClicked = true; 
 
    document.querySelector('input').value = event.currentTarget.textContent.trim(); 
 
}
<input/> 
 
<ul style="display:none"> 
 
    <li>tiger</li> 
 
</ul>

+0

私はそれをチェックしました、それは動作していません – Thala

+0

何がうまくいきませんか? – Rayon

関連する問題