Jquery 选择选项上的绑定单击事件

Jquery 选择选项上的绑定单击事件,jquery,Jquery,使HTML选项元素上的单击事件正常工作时遇到问题 即使是一个简单的控制台。记录“你好!”;不行 我正在尝试这样做: $('#mySelect option').bind('click', function(){ console.log('hi!'); }); 它工作了一段时间,但后来停止了。检查这把js小提琴- HTML 从单击更改为更改您可以通过提供id使用.on绑定。通常,更改是调用的事件 所以,绑定事件时不需要提及选项 $(document).on('change','#mySele

使HTML选项元素上的单击事件正常工作时遇到问题

即使是一个简单的控制台。记录“你好!”;不行

我正在尝试这样做:

$('#mySelect option').bind('click', function(){
  console.log('hi!');
});
它工作了一段时间,但后来停止了。

检查这把js小提琴-

HTML

从单击更改为更改

您可以通过提供id使用.on绑定。通常,更改是调用的事件

所以,绑定事件时不需要提及选项

$(document).on('change','#mySelect', function(){<br>
    console.log('hi!');
});


我建议您使用.on而不是.bind

$('#mySelect').on('change', function(){
  var $this = $(this),
      $value = $this.val();

  alert($value);

});

在我的例子中,以下代码是有效的

$('#myItem').change(function(){
            //do somthing
})

因为改变对我来说不够好,我没有找到一种方法来触发选项点击我所做的是

 $('#mySelect').click(function () {
        if ($(this).attr('optionclick') == '1') {
             $(this).attr('optionclick', '0');
        }
        else {
             $(this).attr('optionclick', '1');
        }
  });

这就解决了这个问题,因为我需要在单击页面上的某些select元素时捕捉事件。虽然还没有验证触摸行为,但Firefox、Chrome似乎还可以

$('.class_for_select').focus(function() {
    // do something here
});

示例将显示如何更改单击或更改选择时选项的下拉值和颜色

HTML:


你最近有什么变化?您使用的jQuery版本是什么?它是如何加载的?在页面或include脚本中,您在哪里调用与加载元素相关的函数?元素是动态生成的还是静态生成的?我认为最后的更改无关紧要,因为即使我将git签出到最后一个工作版本,它也不会工作…jQuery版本是最新的,并且在页脚中以友好方式加载…option元素是从onloadwell的php脚本生成的,如果jQuery加载到页脚中,这是在哪里加载的?这将不允许用户更改值,每当我单击“选择”框时,它会显示弹出窗口。
$('#myItem').change(function(){
            //do somthing
})
 $('#mySelect').click(function () {
        if ($(this).attr('optionclick') == '1') {
             $(this).attr('optionclick', '0');
        }
        else {
             $(this).attr('optionclick', '1');
        }
  });
$('.class_for_select').focus(function() {
    // do something here
});
<select name="options">
      <option value="1">Red</option>
      <option value="2" selected="1">Green</option>
      <option value="3">Blue</option>
</select>
$("select").on("click", function () {
    debugger;
    var sVal = $(this).val();
    $(this).css("background-color", "red");
    $(this).find("option").css("background", "white");
    $(this).find('option:selected').css("background-color", "red");
    $("input").val($(this).val());
});