2014-08-24 4 views
-1

У меня есть две кнопки мыши функции в файле,функция нажмите не работает в JQuery

$('#login').click(function() { 
    // something 
    // also adding the logout part 
    $('#navigation').append('<li id="logout"><a href="#" >Logout</a></li>'); 
}); 

$('#logout').click(function() { 
    // something 
}); 

Когда я загружаю страницу в первый раз, сделайте логин, а затем непосредственно делать выход из системы, в размере $ («# выхода из системы») .click() не работает. Теперь, если я обновляю страницу, она начинает работать. Неправильный способ предоставления функций щелчка. Или это так, поскольку #logout не создается в начале $ ('# logout'). Click() не загружен?

+0

Возможный дубликат [В jQuery, как присоединить события к динамическим элементам html?] (Http://stackoverflow.com/questions/1359018/in-jquery-how-to-attach-events-to-dynamic-html -элементов) –

ответ

0

Вы должны использовать делегирование событий:

$('#navigation').on('click','#logout',function() { 
    // something 
}); 

или прикрепить событие после добавления в DOM:

$('#login').click(function() { 
// something 
// also adding the logout part 
$('#navigation').append('<li id="logout"><a href="#" >Logout</a></li>'); 

$('#navigation').on('click','#logout',function() { 
    // something 
}); 
}); 
0

может быть, по одной из этих причин:

-Может вы использовали ложный класс или идентификатор (возможно)


-Когда вы заходите, возможно, вы используете ajax и добавляете на свою страницу новый элемент, если это правда, вы не можете использовать общие функции jquery, вам необходимо Прикрепить функцию обработчика событий для одного или нескольких событий к выбранным элементам по .on()

два способа использования .on():

function logout() { 
     alert("clicked"); 
    } 
    $("#logout").on("click", logout); 

другой путь:

$("body").on("click", "#logout", function() { 
     alert("logout"); 
    }); 
Смежные вопросы