внешняя функция вызывается без ожидания события, вызванного в jquery

0

Я написал образец jQuery-программы и обнаружил, что функция triclick() вызывается во время загрузки документа jQuery.

Если я заменил part1 на part2, функция click() будет работать нормально. Просьба уточнить, где я ошибаюсь?

Я хочу, чтобы элемент H2 исчезал при щелчке по H3. Но элемент H2 скрывается на самой загрузке.

Часть 1:

$(document).ready(function() 
{
    $("h1").hide();
    $("h3").click(triclick());      
});

function triclick() 
{
    $("h2").hide();
    alert('H2 is hidden');
}

Часть 2: работает нормально при нажатии

$(document).ready(function() 
{
    $("h1").hide();
    $("h3").click(function() 
    {
        $("h2").hide();
        alert('H2 is hidden');
    });     
});

Полная программа:

Теги:

3 ответа

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

У вас есть две функции: анонимная функция:

$(document).ready(function() {
    $("h1").hide();
    $("h3").click(function(){triclick()});      
});

Или просто:

$(document).ready(function() {
    $("h1").hide();
    $("h3").click(triclick);      
});

Yous должен передавать только ссылку на функцию клику и не вызывать функцию.

  • 0
    Благодарю. Все работало нормально
  • 0
    Здравствуйте, @Anand, если это решило ваш вопрос, пожалуйста, примите его , нажав зеленую галочку. Это указывает более широкому сообществу, что вы нашли решение, и дает некоторую репутацию как ответчику, так и вам. Тем не менее, это не обязательно.
Показать ещё 2 комментария
0

проблема в

. $ ( "H3") нажмите кнопку (triclick());

это означает, что при нажатии "h3" он запустит результат, возвращаемый функцией "triclick",

но здесь вы должны перенести параметр имя функции, а не функцию execute-result;

вы должны знать, что скобки являются оператором в javascript, когда он следует определенному имени функции, он будет иметь функцию, выполняемую в выражении функции.

измените код на

$(document).ready(function() {  
   $("h1").hide();  
   $("h3").click(triclick);      
});

при нажатии кнопки "h3" запускается функция triclick

0

вам нужно передать только имя функции. () <- означает его выполнение

$(document).ready(function() {
    $("h1").hide();
    $("h3").click(triclick);      
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню