Как использовать внешнюю функцию в обработчике событий в JQuery - PullRequest
0 голосов
/ 06 апреля 2020

Я хочу сделать что-то вроде этого:

                $(div).bind('click', myFunctionWithManyManyLinesOfCode(param) );

              .....

         function myFunctionWithManyManyLinesOfCode(args){
             //50 lines of Code
           }

Если я сделаю это, функция будет выполнена, когда код достигнет точки и не будет выполняться при щелчках.

Если я включите код из функции myFunctionWithManyManyLinesOfCode в метод связывания, это будет беспорядок в коде.

Кроме того, я пробовал это, но я не могу ссылаться на переменные, они не определены

                $(div).bind('click',  function() {myFunctionWithManyManyLinesOfCode(param)} );

Ответы [ 2 ]

3 голосов
/ 06 апреля 2020

Вы можете передать любые данные следующим образом.

Это должно помочь вам. Если что-то неясно, пожалуйста, напишите комментарий.

Редактировать: Как указано в комментариях, вы должны использовать, а не связывать.

function myFunction(e){
             console.log(e.data.id);
}
$('#example').on('click',{id: "WHATEVER"}, myFunction);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="example">Test</button>
0 голосов
/ 06 апреля 2020

Прежде всего, 50 строк кода слишком много для одной функции и должны быть разделены на меньшие методы, но вы можете использовать этот метод:

var hello = () => {
 alert(123)
}
$("p").click(hello);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...