我在文件中有两个点击功能,
$('#login').click(function() {
// something
// also adding the logout part
$('#navigation').append('<li id="logout"><a href="#" >Logout</a></li>');
});
$('#logout').click(function() {
// something
});
当我第一次加载页面时,进行登录然后直接进行注销,$('#logout')。click()不起作用。现在,如果我进行页面刷新,那么它就开始工作了。 这不是提供点击功能的正确方法吗?或者是因为#logout在开头没有创建$('#logout')。click()没有加载?
答案 0 :(得分: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
});
});
答案 1 :(得分:0)
可能出于以下原因之一:
1 - 您可能使用了错误的类或ID(可能)
2 - 当您登录时可能正在使用ajax并向页面添加一些新元素,如果这是真的您不能使用常见的jquery函数,您应该附加一个事件处理函数.on()
对所选元素的一个或多个事件使用.on()的两种方式:
function logout() {
alert( "clicked" );
}
$( "#logout" ).on( "click", logout);
其他方式:
$( "body" ).on( "click", "#logout", function() {
alert("logout");
});