【问题标题】:Select element and jQuery CHANGE event in IE8?在 IE8 中选择元素和 jQuery CHANGE 事件?
【发布时间】:2011-07-04 13:37:34
【问题描述】:

我的网站上有一个小脚本,它根据在 4 个不同的 Select 元素中选择的选项计算报价。报价被写入一个 div 并在每次所选选项发生任何变化时更新。

这是该页面的链接:http://www.justaddsolutions.com/justaddwebsite/prices/

每当我的 Select 元素发生变化时,我使用 jQuery CHANGE 事件处理程序来触发计算函数,如下所示:

jQuery("#pages").change(price_quoter);

这是我的 HTML 代码:

<select id="pages" class="instant_quote" name="pages"> 
<option value="1">1 page</option>
<option value="2">2 pages</option>

这在 Safari 和 Chrome 中运行良好,但在 IE8 中不起作用。在 IE8 中,Select 元素的变化不会触发计算函数。

我研究了这个问题并得到了相反的数据——有人说 Change jQuery 事件在 IE8 中不起作用,有人说它起作用。

后来想用JS的onChange函数,但又看了看IE8不支持。

您能否帮助找出适用于所有浏览器的方法。

【问题讨论】:

  • 只是想感谢大家的回复。我最终停止了该网站,因此无需返回解决问题并测试建议的解决方案。

标签: jquery internet-explorer-8 onchange


【解决方案1】:

尝试改用 $("select option").click() 事件处理程序。

【讨论】:

  • 谢谢,但 click() 无法确定所选选项是否发生变化。如果有变化,我只需要更新价格值。
【解决方案2】:

根据我的经验,jQuery 中的“更改”事件在 IE8 中对选择列表有效,也许您的代码中存在另一个导致问题的错误?

【讨论】:

    【解决方案3】:

    试试这个

    $("#pages").on("keyup change", function () {
        // let's make sure the event is not the problem , could be a problem with price_quoter? 
        alert("yay!! pages was changed");
        // call your function
        price_quoter();
        // do stuff here
    });
    

    如果您使用的是旧版本的 jquery,您可能需要使用“bind”而不是“on”

    $("#pages").bind("keyup change", function () {
        // let's make sure the event is not the problem , could be a problem with price_quoter? 
        alert("yay!! pages was changed");
        // call your function
        price_quoter();
        // do stuff here
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-11
      • 2011-06-07
      • 1970-01-01
      • 2016-11-28
      • 2011-03-17
      • 1970-01-01
      • 2012-12-18
      相关资源
      最近更新 更多