javascript - 点击.html时向div添加输入框

标签 javascript jquery

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

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

有什么解决办法吗?

最佳答案

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

尝试添加以下内容:

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

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

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

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

关于javascript - 点击.html时向div添加输入框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16380874/

相关文章:

javascript - 构建当前的以类别为中心的导航

javascript - 淡出、淡入和停止

javascript - Angular.forEach 循环无法正常工作

Javascript getElementById 覆盖问题

javascript - 菜单叠加问题

javascript - 为什么我导入js文件的地方会影响我的调用?

javascript - 访问 JS 对象中的项目,按顺序附加到每个 DOM 元素

javascript - javascript能区分破折号吗?

javascript - Colorbox JQuery 单击时未打开

javascript - 如何包装jquery动画?