jQuery .on click事件并不总是触发加载Ajax的内容

时间:2015-08-15 06:07:35

标签: javascript jquery ajax

我有一个动态加载内容的页面。在$(document).on("click", ".content_button", function(e){ e.preventDefault(); e.stopPropagation(); // content }); 内部,我有类似的事件处理程序:

div.content_button:active {
    top: 2px;
}

问题是鼠标点击只能识别大约90%的点击次数。这看起来完全随机。在其他时候,我必须按相同的按钮4-5次,然后它的工作原理。我在控制台中没有错误,即使CSS部分每次都有效:

data.control

我似乎无法找到解决方案。我使用jQuery 1.11,它在Win10,Win7,Firefox内部,甚至在iPad或Android上都是这样的。

您对可能出现的问题有任何想法吗?

修改

.content_button包含HTML中的 $.ajax({ url: 'worker.php', async: false, cache: false, type: "POST", data: { action:"update" }, dataType: "json", success:function(data) { if(data.actionresult == 1) { $('div#container').hide("slide", { direction: "down" }, 500); $('div#container').promise().done(function() { $('div#container').html(data.control); $('div#container').show(); }); } else { // handle error } } }); div(按钮)。

这是加载按钮的部分:

foverlaps

2 个答案:

答案 0 :(得分:0)

你试过

吗?
$(function() {

   var count = 0;

   $('body').on('click', '.content_button', function() {
       count++;
       $('#count').html(count);
   });

});

https://jsfiddle.net/byexstpq/

答案 1 :(得分:0)

好的,我发现了问题,就是这样:

div.content_button:active {
    top: 2px;
}

在mouseDown上它移动了2个像素,因此在mouseUp之后链接可能不会出现在那里 - 所以从技术上来说,当mouseUp发生在另一个元素上时,click事件不会被激活。

我希望这会对别人有所帮助。