代码之家  ›  专栏  ›  技术社区  ›  Josh Bush

捕获IE上HTML选项元素的鼠标事件

  •  1
  • Josh Bush  · 技术社区  · 15 年前

    对于Internet Explorer,似乎只有单击、鼠标窗口、鼠标指针、鼠标指针等的目标(srcElement)打开 <select /> 元素不会绑定到 <option /> 元素。

    给定以下HTML:

    <select id="madness">
       <option value="1">One</option>
       <option value="2">Two</option>
       <option value="2">Three</option>
    </select>
    

    这个基本的jquery事件处理程序:

    $("#madness").mousedown(function(e){
       alert(e.target.value); //jQuery pushes srcElement into the target for us here
    });
    

    在中的对象 e.target e.srcElement 总是等于 <选择//gt; 而不是 <选项/gt; .

    我决定发挥创造力并尝试使用 document.elementFromPoint(e.clientX,e.clientY) 它也返回select元素。

    这就带来了问题,有没有办法确定 <选项/gt; 里面 <选择/> 通过事件参数、坐标或其他方式?我知道我可以用一个可滚动的部分复选框来伪造它。对于这个问题,我想要任何可以使用本机select元素的解决方案。

    2 回复  |  直到 15 年前
        1
  •  2
  •   AnthonyWJones    15 年前

    简单地说,没有使用本机select元素的解决方案。

        2
  •  0
  •   Willson Haw    15 年前

    你可以做到:

    $("#madness").val()
    

    获取所选<选项的值/>。