0

我有一个简单的 jQuery 脚本设置,可以在单击 div 时向 div 添加一个输入框。唯一的问题是,当我单击输入框添加文本时,它认为我再次单击 div 并尝试再次添加输入框,而不是让我添加文本。

$(".match").click(function() {
    var match_id = $(this).find(".match_id").text();
    $(this).find("#bet").html("<div><input type='text'></div>");
});

任何想法如何解决它?

4

1 回答 1

3

问题是输入在div中。所以你需要阻止点击事件传播到 div。

尝试添加这个:

$('.match input').click(function(e) {
    e.stopPropagation();
    e.cancelBubble = true;
});

或者,如果您只想将一个输入添加到 div,您可以将事件侦听器更改为:

$('.match').one('click', function() {
    ...
});

one()将执行事件侦听器,然后立即将其从该元素中删除,因此它最多只会对每个匹配的元素执行一次。

于 2013-05-05T02:42:49.537 回答