1

我的问题:此代码在 Firefox chrome 和 safari 中有效,但在 IE 8 中无效。我有.change,但我发现它在 ie 中不起作用,所以我.click在所有浏览器中再次尝试,一切正常,在 ie 中尝试仍然不工作。anySlider 是我正在使用的一个 jquery 库,我确定这不是问题(反向工作就像选择下拉菜单上的项目并移动到该幻灯片在任何地方都可以工作,包括即。谢谢。

我的代码:

 $(document).ready(function() {
 $('#skillslist').click(function()
  {var str = $(this).attr('value');
  var pattern = /[0-9]+/g;
  var matches = str.match(pattern);
 var myInteger = parseInt(matches);
 $('#slider').anythingSlider(myInteger);


  });


    });
</script>

 <select name='myList'  id='skillslist'>
 <option>Subscription Days Remaining: <? echo $days ?></option>
 <option id='skill1'>Skill 1: Hand Washing</option>
 <option id='skill2'>Skill 2: Abdominal Thrust on Conscious Resident</option>
 <option id='skill3'>Skill 3: Ambulation using a Gait Belt</option>
 </select>
4

2 回答 2

2

你可以试试这个:

$('#skillslist').on('change', function(){  // change instead of click
  var str = this.value;
  var pattern = /[0-9]+/g;
  var matches = str.match(pattern);
  var myInteger = parseInt(matches);
  $('#slider').anythingSlider(myInteger);


  });
});

不确定,如果您在页面加载后选择附加到 dom,那么您应该选择

$('body').on('change', '#skillslist', function(){  // change instead of click
  var str = this.value;
  var pattern = /[0-9]+/g;
  var matches = str.match(pattern);
  var myInteger = parseInt(matches);
  $('#slider').anythingSlider(myInteger);


  });
});

NOTE body可以替换为选择框的容器。

于 2012-06-03T08:09:04.357 回答
2
$('#skillslist').change(function() {
    var str = $(this).val();
    // ...
});

我总是尽量避免$(this).attr('value')or this.value,因为应该使用this.options[this.selectedIndex]... 查询选择框值,这.val()对你有用。

在你说“它不起作用”之前,首先描述什么不起作用,并确保通过设置值来消除其他alert()因素myInteger

于 2012-06-03T08:24:50.533 回答