点击功能在JQuery中不起作用

时间:2014-08-24 06:11:17

标签: jquery

我在文件中有两个点击功能,

$('#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()没有加载?

2 个答案:

答案 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");
    });