2017-12-14 11 views
0

ドロップダウンからどのオプションが選択されているかをキャプチャします。
optionがクリックされているときに問題が発生するTR selectにclickイベントがないため、clickイベントが呼び出されます。Javascript stop TRドロップダウンイベントのクリックイベント| IE 11で動作していません

dropdownをクリックすると、TRのクリックイベントを停止できますか?

function check1(e) { 
 
    if (typeof e == "undefined") 
 
    e = window.event; 
 
    if (e) { 
 
    var sourceElement = e.srcElement || e.target; 
 
    if (sourceElement) { 
 
     if (sourceElement.getAttribute("data-stop-propagation")) { 
 
     //element being clicked asked to ignore the event, abort 
 
     return; 
 
     } 
 
    } 
 
    } 
 
    alert("TR clicked"); 
 
} 
 

 
function check2() { 
 
    alert("drop_down clicked"); 
 
}
<table border=1> 
 
    <tr onclick="check1();"> 
 
    <td>My Options</td> 
 
    <td> 
 
     <select name="" id="drop_down" onchange="check2();" data-stop-propagation="1"> 
 
       <option value="A">A</option> 
 
       <option value="B">B</option> 
 
      </select> 
 
    </td> 
 
    </tr> 
 
</table>

[1]: https://jsfiddle.net/oqgdh59o/3/

+0

あなたはすべてのクリックイベントを持っているTRを必要とする理由は私にははっきりしていません。選択された変更されたハンドラで何が必要なのですか? – Paul

+0

私はTRをクリックして別のページを開いている既存のプロジェクトに取り組んでいます。 – amicngh

答えて

2

ビットそれをバック取る、select.clickselect.changeイベントの前に実行tr.click前に実行されます。選択がクリックされたときに伝播を停止しないのはなぜですか?

function check1() { 
 
    alert("TR clicked"); 
 
} 
 

 
function check2() { 
 
    alert("drop_down clicked"); 
 
} 
 

 
function stopPropagation() { 
 
    event.stopPropagation(); 
 
};
<table border=1> 
 
    <tr onclick="check1();"> 
 
    <td>My Options</td> 
 
    <td> 
 
     <select name="" id="drop_down" onclick="stopPropagation();" onchange="check2();" data-stop-propagation="1"> 
 
       <option value="A">A</option> 
 
       <option value="B">B</option> 
 
      </select> 
 
    </td> 
 
    </tr> 
 
</table>

関連する問題