#javascript #function #arguments #execute #args
#javascript #функция #аргументы #выполнить #аргументы
Вопрос:
Когда я запускаю код:
$(".pro-tip-1").mouseover(activateProTip(1));
Он сразу вызывает функцию activateProTip . Он не ждет, пока наведение курсора мыши будет истинным сценарием.
Теперь, если я извлекаю передаваемый аргумент (1), он выполняется по назначению. Он ожидает, что наведение курсора мыши будет истинным, затем он вызывает функцию. Это то, что я хочу, однако я также хочу передать аргумент.
$(".pro-tip-1").mouseover(activateProTip);
Проблема в том, что я не могу передать аргумент и запустить его по назначению, но я хочу иметь возможность передавать аргумент.
Я совершенно новичок в Javascript, если это еще не очевидно, поэтому, пожалуйста, следите за тем, чтобы ваш код в ответе был простым для понимания, заранее спасибо!
Ответ №1:
Попробуйте это решение, оно будет работать
$(".pro-tip-1").mouseover(()=>activateProTip(1));
Объяснение:
вы всегда можете использовать функцию обратного вызова для событий щелчка.
когда вы вызываете подобным образом (activateProTip(1)), это не будет связывать события, поэтому он немедленно вызовет
Ответ №2:
Это ожидается, требуемый аргумент является функцией. Если вы вместо этого передадите оператор, он будет немедленно интерпретирован (потенциально вы могли бы вызвать функцию, которая фактически возвращает функцию, которую вы хотите вызвать при наведении курсора мыши!). Вместо этого вы можете написать функцию, которая затем будет вызываться activateProTip
с аргументом.
$(".pro-tip-1").mouseover(() => activateProTip(1));