jquery 对于 select 操作

问题:我给 select 绑定了 change 事件,然后根据选择的 option 数据进行对应操作,但是有个问题是,如果我第二次选择上次一样的 option 是无法触发事件。因为没有 change 所以没有执行。但是我想要不管改变没有,都要执行对应选择 option 的方法。我使用 select 事件也不行,请问大家有没有办法。不行的话,我就用 ul li 模拟一个下拉选择了。

阅读 3.6k
3 个回答

我的实现存在问题,感谢@边城的指出,采用他的答案
以下的原答案:


如果用change的话,会出现题主描述的情况那样;
如果用click的话,那么点击select下拉的时候也会触发事件;
然而option又不能绑定click事件...
自己动手,丰衣足食:

Element.prototype.onSelectChange = function(callback) {
    var cached = 0;
    this.addEventListener("click", function(event) {
        if (cached == this) {
            callback.call(this, event);
            cached = 0;
        } else {
            cached = this;
        }
    });
}

使用方法:

var select = document.getElementById("select");
select.onSelectChange(function(event) {
    // code here;
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用