7

私は次の JavaScript ドロップダウンを使用しています。これは、新しい Windows Edge を除くすべてのブラウザーで完璧に機能します。

次のエラーが表示されます。

SCRIPT438: オブジェクトはプロパティまたはメソッドの「一致」をサポートしていません

脚本:

/* When the user clicks on the button, 
toggle between hiding and showing the dropdown content */
function myFunction() {
    document.getElementById("myDropdown").classList.toggle("show");
}

// Close the dropdown menu if the user clicks outside of it
window.onclick = function(event) {
  if (!event.target.matches('.dropbtn')) {

    var dropdowns = document.getElementsByClassName("dropdown-content");
    var i;
    for (i = 0; i < dropdowns.length; i++) {
      var openDropdown = dropdowns[i];
      if (openDropdown.classList.contains('show')) {
        openDropdown.classList.remove('show');
      }
    }
  }
}

http://www.w3schools.com/howto/howto_js_dropdown.aspからスクリプトを取得しました。これは、すべてのプラットフォームと互換性があると想定していました。今、私はすでにそれを実装しており、Edge で問題に遭遇しました。

4

4 に答える 4

3

クロスブラウザ ソリューションについては、 http: //youmightnotneedjquery.com/#matches_selectorをご覧ください。

var matches = function(el, selector) {
  return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector);
};

matches(el, '.my-class');
于 2016-11-23T17:19:04.913 に答える