jQuery – вызов функции javascript

Вопрос:function initiate() { $("p").text("Hi", Hello()); } function Hello() { alert("Hello, you have called another function"); } HTML: This is a paragraph. This is another paragraph. Click me В настоящий момент скрипт вызывает функцию initiate() при нажатии кнопки, а затем вызывается другая функция Hello(), изменяя все абзацы в html на "Привет". Мне бы хотелось, чтобы

Вопрос:function initiate() { $(«p»).text(«Hi», Hello()); } function Hello() { alert(«Hello, you have called another function»); }

HTML:

<p>This is a paragraph.</p> <p>This is another paragraph.</p> <button onclick=»initiate()»>Click me</button>

В настоящий момент скрипт вызывает функцию initiate() при нажатии кнопки, а затем вызывается другая функция Hello(), изменяя все абзацы в html на “Привет”.

Мне бы хотелось, чтобы функция Initiate() вызывала функцию Hello() с помощью jQuery и ничего не делала.

(Другими словами, как просто вызвать функцию с помощью jQuery?)

Лучший ответ:

Я бы сказал, что для этого вам действительно не нужен jquery, но если вы мертвы, когда используете его, вы должны переоценить свою логику здесь. Сначала дайте своей кнопке идентификатор, вам это не нужно, но все равно хорошо сделать это:

<button id=»btnClickMe»>Click Me<button>

затем используйте это для запуска события jquery, тем самым вызывая свою функцию:

$(‘#btnClickMe’).click(function() { //You can either link directly to a func here alert(‘Whatever’); //Or you can write the code for your func directly into the handler here }); Ответ №1

Вы не можете передать функцию обратного вызова в текст(). Вызовите метод hello после изменения текста.

Демо-версия

+ Изменить

$(«p»).text(«Hi», Hello());

к

$(«p»).text(«Hi»); Hello(); Ответ №2

Если вы только хотите вызвать Hello() из Initiate(), вы просто вызываете его следующим образом:

function initiate() { Hello(); } Ответ №3

Мне бы хотелось, чтобы функция Initiate() вызывала функцию Hello() с помощью jQuery и ничего не делала.

Вам не нужно вызывать функцию с помощью jQuery, вы можете просто вызвать ее.

function initiate() { $(«p»).text(«Hi»); Hello(); }

Аргумент функции, полученный с помощью .text, не является вторым аргументом, и он также не предназначен для вызова этой функции, как вы пытаетесь сделать. Он предназначен для установки текста каждого абзаца индивидуально, возвращая значение из переданной функции. Так как вам нужен текст “Привет” в каждом абзаце, вы можете просто использовать $(«p»).text(«Hi»).

Ответ №4

Это приложит обработчик событий, который будет запущен при нажатии кнопки. Вам больше не понадобится функция initialize, и вам не нужно будет устанавливать текст на p. У меня возникли проблемы с тем, что вы хотели бы, но я думаю, вы просто хотите вызвать функцию простым нажатием кнопки.

$(document).ready(function(){ $(«button»).click(function(){ Hello(); }); });

Оцените статью
Добавить комментарий