【问题标题】:.change() function does not work [duplicate].change() 函数不起作用[重复]
【发布时间】:2014-12-11 16:40:11
【问题描述】:

我正在使用 .change() 函数来检查输入中的更改,并在发生更改时发出警报,但我一定是做错了,因为这不起作用:

jsFiddle

$(document).ready(function() {
    var sizes = ["0", "1", "2", "3", "4", "5", "5", "6", "7"];

$("#slider").slider({
      orientation: "vertical",
      range: "min",
      animation:false,
      min: 0,
      max: 8,
      value: 0,
  slide: function(event, ui) {
      $('.convert').val(sizes[ui.value]);      
  }
});

       $('.convert').change(function(e){
           alert("works?");
       });

       $('.convert').keypress(function(e){
           alert("works?");
       });

 });

【问题讨论】:

  • 输入文本然后聚焦事件似乎触发了,我认为在你模糊之前它不会触发更改
  • 不工作是什么意思?它按预期工作...手动更改值不会触发更改,只需执行.val(sizes[ui.value]).trigger('change')
  • 这就是@ZachLeighton 所说的:只有在模糊时才会触发。您可以将其更改为 keyup 事件。
  • @karl 谢谢,这很好用,您可能想将其添加为答案...我忘了触发更改...
  • @Alin 不确定这是否真的是问题所在,现在我确定了,我只是将其标记为重复!

标签: javascript jquery onchange


【解决方案1】:

输入文本然后关注事件似乎触发了,我认为在你模糊之前它不会触发更改

将活动更改为 $('.convert').on('keyup', function(){ alert('foo');});(感谢 Chris B.)

查看更新的小提琴:http://jsfiddle.net/6ys3derm/2/

【讨论】:

  • Karl 指出了我的错误……这正是我要找的。为答案+1。
【解决方案2】:

嗯。你可以试试这个吗?

$('document').on('change', '.convert', function(){
  alert("it works :-)");
});

【讨论】:

  • Karl 指出了我的错误……这正是我要找的。为答案+1。
【解决方案3】:

滑块有自己的更改事件

fiddle

$(document).ready(function() {
    var sizes = ["0", "1", "2", "3", "4", "5", "5", "6", "7"];

  $("#slider").slider({
        orientation: "vertical",
        range: "min",
        animation:false,
        min: 0,
        max: 8,
        value: 0,
    slide: function(event, ui) {
        $('.convert').val(sizes[ui.value]);      
    },
      change:function(){                     //called onchange
          alert("slider changed");  
      }
  });

});

【讨论】:

  • Karl 指出了我的错误……这正是我要找的。为答案+1。
猜你喜欢
  • 2011-04-24
  • 1970-01-01
  • 1970-01-01
  • 2012-08-26
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多