非被动事件监听器违规与更改

时间:2018-03-14 19:37:46

标签: javascript drop-down-menu onchange passive-event-listeners

因此,我继续为我的on change事件获取此非被动事件侦听器违规。它最近才开始这个废话。将.js文件移动到自己的文件夹后,此函数完全停止工作。该功能甚至不会执行,我只是收到警告。除了这个函数之外,.js文件中的每个函数都有效。

错误:

  

[违规]为滚动阻止>'鼠标滚轮'添加了非被动事件监听器      事件。考虑将事件处理程序标记为“被动”以使页面更多      响应。见https://www.chromestatus.com/feature/5745543795965952

守则:

    //Put the music into the list for the user to select from
    $('#songs').on('change', function() {
    var $selected = $('#songs').find(':selected').text();
    $('#audio').attr('src', './../music/' + $selected);
    });

    <div class="control-panel">
    <audio src="music/Legend_of_Zelda_Zelda_Heineken_OC_ReMix.mp3" 
    id="audio" controls>Audio not supported</audio>
    <select id="songs">
    </select>
    </div>  

我所看到的关于非被动问题的一切都必须处理具有.preventDefault()的函数或基于滚动行为修改页面。我不知道为什么我的改变功能会触发它,所以我不知道如何让它停止触发它。

- edit--
关于错误性质的更多信息:

它仅停止从传输到音频元素的更改 单击选择器时会发出警告 这段代码工作了好几个月,错误发生在后面而没有对它前面的代码进行任何修改 我的其他代码都没有受到bug的影响。

- 编辑2--
既然代码正在运行(通过删除jQuery使用)我只有一个问题:
为什么警告仍在那里?

2 个答案:

答案 0 :(得分:0)

虽然我不知道导致该错误的原因,但它可能与jQuery需要做的一些事情有关。

一般来说,你可以在没有jQuery的情况下做到这一点,所以这里是纯JS的重写。

document.addEventListener("DOMContentLoaded", function() {
  document.querySelector('#songs').addEventListener('change', function() {
    var t = document.querySelector('#songs :checked').text;
    document.querySelector('#audio').src = './../music/' + t;
  });
});

答案 1 :(得分:0)

es hat nichts mit JS oder jQuery zu tun。 Ausgelöstwirdder Fehler durch das &lt; select&gt; -Tag ich benutze Chrome 版本65.0.3325.181(Offizieller Build)(64位)

&lt;label class="control-label" for="bemerkung"&gt;
Wie sind Sie auf uns auf­merk­sam ge­wor­den?&lt;br /&gt;
&lt;/label&gt;
&lt;select class="form-control" id="aufmerksam_durch_dropdown" name="Aufmerksam"&gt;
&lt;option value="" selected="selected"  class="default"&gt;Pick one&lt;/option&gt;
&lt;option value="1"&gt;Durch das In­ter­net&lt;/option&gt;
&lt;option value="2"&gt;Durch Freun­de/Be­kann­te/Fa­mi­lie&lt;/option&gt;
&lt;option value="3"&gt;Durch ein Mit­glied&lt;/option&gt;
&lt;option value="4"&gt;Durch eine Ver­an­stal­tung&lt;/option&gt;
&lt;option value="0"&gt;Son­sti­ge&lt;/option&gt;
&lt;/select&gt;

<label class="control-label" for="bemerkung">
Wie sind Sie auf uns auf­merk­sam ge­wor­den?<br />
</label>
<select class="form-control" id="aufmerksam_durch_dropdown" name="Aufmerksam">
<option value="" selected="selected"  class="default">Pick one</option>
<option value="1">Durch das In­ter­net</option>
<option value="2">Durch Freun­de/Be­kann­te/Fa­mi­lie</option>
<option value="3">Durch ein Mit­glied</option>
<option value="4">Durch eine Ver­an­stal­tung</option>
<option value="0">Son­sti­ge</option>
</select>

Consolenmeldung: [违规]为滚动阻止“鼠标滚轮”事件添加了非被动事件监听器。考虑将事件处理程序标记为“被动”以使页面更具响应性。见https://www.chromestatus.com/feature/5745543795965952

相关问题