Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 关于多次触发_Jquery - Fatal编程技术网

Jquery 关于多次触发

Jquery 关于多次触发,jquery,Jquery,我正在我的页面中使用此代码。当我用.process_record类单击按钮时,它会给我一个警报,但如果我再次单击同一按钮,它会一次给我两个警报。我不知道为什么会这样 $(".body .content").on("click", ".process_record", function(e){ alert("clicked"); var url = $(this).attr("data-url"); $.post(url, function(dat

我正在我的页面中使用此代码。当我用.process_record类单击按钮时,它会给我一个警报,但如果我再次单击同一按钮,它会一次给我两个警报。我不知道为什么会这样

$(".body .content").on("click", ".process_record", function(e){

        alert("clicked");
        var url = $(this).attr("data-url");
        $.post(url, function(data){
            $(".body .content").html(data);
        },"html");
    })

在上面的小提琴中,这对我来说很合适。html设置为:

<div class="body">
    <div class="content">
        <input type="button" class="process_record" />
    </div>
</div>

请记住,这将从
$(“.body.content”)
中解除所有事件的绑定,因此如果只想卸载命名事件,请将解除绑定行更改为
$(“.body.content”)。解除绑定(“单击”,clickAction)

您的
$中追加了什么内容。post
?很可能是原因。很可能每次单击时都会再次绑定它,因此每次连续单击都会触发一个额外的单击事件。这似乎是因为通过$.post加载的内容也有一个具有相同类的按钮。我想通过该按钮执行相同的操作,这就是为什么我使用.on方法。在什么时候执行这段代码?每页只应加载一次(通常在document.ready事件中)。正如@KevinB所说,您可能正在重新绑定事件,但我没有看到在这个点击处理程序中发生这种情况。谢谢您,因为同样的函数也添加到了通过$.post加载的页面中。
var clickAction = function(){
    alert("clicked");
    $(".body .content").unbind("click");
    setClick($(".body .content"),clickAction);
}

var setClick = function(target,action){
    target.on("click", ".process_record",action)
}

setClick($(".body .content"),clickAction);