更改事件不会触发多次相同的元素

时间:2017-02-02 16:17:39

标签: javascript jquery

我有一组单选按钮可以在单击时触发事件,在我的情况下更改。

在我的情况下,我有5个选项。问题是,当我点击第一个选项(“从未到达”)时,事件会毫无问题地触发,但如果我再次尝试触发,它会停止,它不起作用。在我的情况下,我需要使用“更改”事件,我可以在同一个元素中多次激活事件吗?

示例html:

<label class="btn btn-info">
    <input type="radio" name="options" id="optiond1" class="btndelayhours"  autocomplete="off" d="9"> NEVER ARRIVED 
</label>

<label class="btn btn-info">
    <input type="radio" name="options" id="optiond1" class="btndelayhours"  autocomplete="off" d="5"> some toher info
</label>

JS:

$(".btndelayhours").on('change', function(){

Do some stufff...}..

3 个答案:

答案 0 :(得分:1)

在这种情况下,您可以使用click()事件,因为只有在值更改的情况下才会触发change()事件:

$(".btndelayhours").on('click', function(){
    //Your code 
})

希望这有帮助。

&#13;
&#13;
$(".btndelayhours").on('click', function(){
  console.log($(this).parent().text().trim()+' clicked');
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<label class="btn btn-info">
  <input type="radio" name="options" id="optiond1" class="btndelayhours"  autocomplete="off" d="9"> NEVER ARRIVED 
</label>
<label class="btn btn-info">
  <input type="radio" name="options" id="optiond1" class="btndelayhours"  autocomplete="off" d="5"> some toher info
</label>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

on('change'仅在值更改时触发,

您应该使用on('click'代替

&#13;
&#13;
$(".btndelayhours").on('click', function() {
  console.log(this.id, this.checked);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="btn btn-info">
  <input type="radio" name="options" id="optiond1" class="btndelayhours" autocomplete="off" d="9">NEVER ARRIVED</label>

<label class="btn btn-info">
  <input type="radio" name="options" id="optiond2" class="btndelayhours" autocomplete="off" d="5">some toher info</label>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

如果再次单击相同的单选按钮,它将不会再次触发。因为你写了change事件。再次单击相同的单选按钮时,单选按钮的状态不会更改。如果您确实需要这样做,请尝试点击事件。 请参阅plunker https://plnkr.co/edit/ZbnyajwywN71jZd2xEvc?p=preview