javascript - jQuery 单击事件仅在第二次单击后才有效

标签 javascript jquery html jquery-click-event

我已将点击事件绑定(bind)到名为“.reportfile”的类,如下所示。

$('body').on('click','.reportfile',function(e){
    e.preventDefault();
    e.stopPropagation();
    var id=$(this).attr('id');
    if(!$(this).hasClass('brc')) {
         // Perform some action here.
    }
});

现在我正在使用“.reportfile”类动态创建 LI 元素。像这样,

var inLi=$('<li>');
inLi.addClass('reportfile');
$(containerdiv).append(inLi);

现在,当我尝试点击动态生成的 LI 元素时,它仅在第二次点击时有效。

https://jsfiddle.net/mt7km8bz/

UL 上方有输入框,可以过滤列表。这是我动态创建新 LI 的地方。筛选列表中的 LI 元素必须单击两次才能使其正常工作。

最佳答案

问题是焦点在输入框上,第一次点击输入框仍然有焦点,所以列表上的点击事件不会触发。

所以在第一次点击时它失去了对输入框的关注并且在第二次点击事件被触发。

对以下内容的更改对我有用。

$('body').on('keyup','.searchable',function(){
      // Some code
});

关于javascript - jQuery 单击事件仅在第二次单击后才有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36442416/

相关文章:

javascript - CSS 裁剪图像以适应屏幕宽度,同时保持图像的原始高度

javascript - 正则表达式和字符串

javascript - 我怎样才能提前停止功能?

javascript - 绕过 Safari 中的弹出窗口拦截器

javascript - 服务器端和客户端javascript

html - 使bootstrap 4在xs屏幕模式下显示flex子div宽度100%

javascript - 滚动到 View 时向元素添加类(可滚动的 div)

javascript - 应该在排序函数之后的回调中设置状态吗?

javascript - 如何在动态 li 中为第一个选项卡添加事件类

javascript - 将php关联数组转换为javascript对象