Захват события и предотвращение выполнения кода после запуска - PullRequest
0 голосов
/ 09 марта 2020

У меня есть простой триггер

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

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

Затем я фиксирую это событие

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

Но возможно ли предотвратить выполнение журнала "xxx" из * 1007? * function?

Я хочу, чтобы строка A и строка B выполнялись всегда, как обычно. Но в определенном сценарии ios я хотел бы выполнить строку A, строку X и предотвратить выполнение строки B следующей. Это вообще возможно?

1 Ответ

2 голосов
/ 09 марта 2020

Вы можете использовать флаг, чтобы сделать это. Просто проверьте, установлен ли флаг в true или нет, перед консолью xxx и установите флаг в false в вашем my_click

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>
...