边缘浏览器:更改选择值时触发的mouseleave事件

时间:2015-11-26 19:43:28

标签: javascript jquery drop-down-menu microsoft-edge

示例:http://jsfiddle.net/FGuVM/76/

<div>
<form>
    <select class='yearDropdown'>
        <c:forEach var="years" items="${parkYears}">
            <option value="2010">2010</option>
            <option value="2011">2011</option>
            <option value="2012">2012</option>
            <option value="2013">2013</option>
            <option value="2014">2014</option>
            <option value="2015">2015</option>
            <option value="2016">2016</option>
            <option value="2017">2017</option>
        </c:forEach>
    </select>
</form>

在Chrome上,从选择中选择值时,不会触发Firefox和IE 11 mouseleave。

在更改事件之前的microsoft Edge mouseleave触发器上。

选择不起作用,因为我在值更改之前更改了选择大小。

如何使选择工作与其他浏览器一样?

1 个答案:

答案 0 :(得分:1)

我可以确认浏览器之间的差异。此外,似乎这可能是EdgeHTML引擎中的回归,因为Windows 10上的Internet Explorer 11的功能类似于Google Chrome和Mozilla Firefox in my testing

<select size="3">
    <option>A</option>
    <option>B</option>
    <option>C</option>
</select>
with ( document.querySelector( "select" ) ) {
    addEventListener( "change",     log.bind( this, "change" )     );
    addEventListener( "mouseenter", log.bind( this, "mouseenter" ) );
    addEventListener( "mouseleave", log.bind( this, "mouseleave" ) );
}

function log ( eventName ) {
    document.body.appendChild(
        document.createElement( "p" )
    ).textContent = eventName;
}

我会看看团队是否已就此提出问题;如果我们不这样做,我会确保它被跟踪。