JavaScript Event Listener runs twice

Andreas Remdt

As reference, please see my example in JSFiddle below. Every time somebody clicks on the plus button, a new row should be inserted below. This works fine except the fact that the amount of new rows inserted is always twice the amount of current existing rows. How can I avoid this strange behavior, or what's the reason for it? Please click the first rows button to see the issue.

http://jsfiddle.net/jrxeua6L/

var answers = [{
    order: 1,
    content: "placeholder"
}],
    appendAnswer = function() {

    answers.push({
        order: answers.length + 1,
        content: $(this).parent().prev().val()
    });

    $("#answers").empty();

    $.each(answers, function(key, value) {
        $("#answers").append('<div class="input-group"><input type="text" class="form-control" placeholder="Enter your answer"><span class="input-group-btn"><button type="button" class="btn btn-default" title="Add a question" data-action="add"><span class="glyphicon glyphicon-plus"></span></button><button type="button" class="btn btn-default" title="Delete this question" data-action="delete" disabled><span class="glyphicon glyphicon-trash"></span></button></span></div>');

        $("#answers button[data-action='add']").one("click", appendAnswer);
    });
};

$("#answers button[data-action='add']").one("click", appendAnswer);
Anton

Use event-delegation

$("#answers").on("click", "button[data-action='add']",appendAnswer);

The cause of your problem is that you are binding multiple events on same elements in the each loop, so remove the delegation there.

Remove this line below from the .each() loop

$("#answers button[data-action='add']").one("click", appendAnswer);

DEMO

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Event listener Javascript

分類Dev

Unexpected Javascript DOM event listener issues

分類Dev

Javascript event listener sometimes works sometimes doesn´t

分類Dev

Javascript event listener sometimes works sometimes doesn´t

分類Dev

Event listener for key down is not being read by my code in Javascript

分類Dev

React access props from inside a javascript event listener

分類Dev

Event listener in my button doesn't work properly, the function runs normally outside the click event, but it doesn't work when I click the button

分類Dev

Event Listener Logic

分類Dev

Event listener of multiple events

分類Dev

Button created with JavaScript, when the button is created again the on click event happens twice

分類Dev

drag and drop event fires twice

分類Dev

jquery Event Listener on DropDown Open

分類Dev

Doctrine event listener and softdeleted filter

分類Dev

Reactjs, removing event listener on componentWillUnmount,

分類Dev

Mouse Listener on_move event

分類Dev

Selector problem for if/else event listener

分類Dev

Adding Event listener to drawn objects

分類Dev

google charts remove event listener

分類Dev

Javascript form submits twice

分類Dev

stopping mousewheel event from happening twice in OSX

分類Dev

bot framework conversationUpdate event seems to fire twice

分類Dev

Sharepoint 2010 event receiver ItemUpdated fires twice

分類Dev

Exclude Button From Event Listener OnClick

分類Dev

Remove a window event Listener from the handler function

分類Dev

add jquery event listener to series of unique elements

分類Dev

onclick event listener only running once

分類Dev

Common Event Listener for multiple instances of custom element

分類Dev

This is not a function while using in click event listener

分類Dev

How to remove an event listener within a class?

Related 関連記事

  1. 1

    Event listener Javascript

  2. 2

    Unexpected Javascript DOM event listener issues

  3. 3

    Javascript event listener sometimes works sometimes doesn´t

  4. 4

    Javascript event listener sometimes works sometimes doesn´t

  5. 5

    Event listener for key down is not being read by my code in Javascript

  6. 6

    React access props from inside a javascript event listener

  7. 7

    Event listener in my button doesn't work properly, the function runs normally outside the click event, but it doesn't work when I click the button

  8. 8

    Event Listener Logic

  9. 9

    Event listener of multiple events

  10. 10

    Button created with JavaScript, when the button is created again the on click event happens twice

  11. 11

    drag and drop event fires twice

  12. 12

    jquery Event Listener on DropDown Open

  13. 13

    Doctrine event listener and softdeleted filter

  14. 14

    Reactjs, removing event listener on componentWillUnmount,

  15. 15

    Mouse Listener on_move event

  16. 16

    Selector problem for if/else event listener

  17. 17

    Adding Event listener to drawn objects

  18. 18

    google charts remove event listener

  19. 19

    Javascript form submits twice

  20. 20

    stopping mousewheel event from happening twice in OSX

  21. 21

    bot framework conversationUpdate event seems to fire twice

  22. 22

    Sharepoint 2010 event receiver ItemUpdated fires twice

  23. 23

    Exclude Button From Event Listener OnClick

  24. 24

    Remove a window event Listener from the handler function

  25. 25

    add jquery event listener to series of unique elements

  26. 26

    onclick event listener only running once

  27. 27

    Common Event Listener for multiple instances of custom element

  28. 28

    This is not a function while using in click event listener

  29. 29

    How to remove an event listener within a class?

ホットタグ

アーカイブ