捕获事件并在触发后阻止代码执行

我有一个简单的触发器

$("button").click(function()
{
    $(this).trigger("my_click"); //line A

    console.log("xxx"); //line B
});

然后我捕获了该事件

$("button").on("my_click",function()
{
    console.log("custom"); //line X
});

但是,是否可以防止通过.on()函数执行“ xxx”日志?

我希望像往常一样执行A行和B行。但是在某些情况下,我想执行A行,X行,并阻止B行接下来执行。那有可能吗?

a527672905 回答:捕获事件并在触发后阻止代码执行

您可以使用标志来执行此操作。只需在xxx控制台之前检查flag是否为true,然后在my_click中将flag设置为false

var flag = true;

$("button").click(function()
{
    $(this).trigger("my_click"); //line A

    if( flag ) {
        console.log("xxx"); //line B
    }
});


$("button").on("my_click",function()
{
    console.log("custom"); //line X
    flag = false;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button>button</button>

本文链接:https://www.f2er.com/2676932.html

大家都在问