jQuery .on无法识别警告标注中的新链接元素

时间:2015-04-21 01:33:00

标签: jquery

如果有人已经注册了电子邮件地址,我有以下代码来显示错误消息:

$output['error'] = __('Email is taken. Is that you? Try to <a href="#" data-template="login">login</a> to this site or 
<a href="#" id="extend_membership_email">extend your membership to this site</a>
<input type="hidden" id="extend_membership_email_value" value="'.$input_value.'">','userpro');

然后我有以下JS来检查这个:

$( "#extend_membership_email" ).on('click', 'a', function(e) {
    e.preventDefault();
    alert("it is in here");
    var email_member = $('#extend_membership_email_value').val();
    alert(email_member);
});

2 个答案:

答案 0 :(得分:3)

试试这个:

$(document).on('click', '#extend_membership_email a', function(e) {
    e.preventDefault();
    alert("it is in here");
    var email_member = $('#extend_membership_email_value').val();
    alert(email_member);
});

您需要将click事件挂钩到文档,并且在第二个参数中您应该设置目标选择器(我想您想要从&#34; a&#34;内部&#听取事件34;#extend_membership_email&#34;

答案 1 :(得分:0)

如果您要添加新元素,则无效,因为它是$(document).ready()时。它从页面加载时获取HTML元素/ DOM。

尝试将其添加到HTML文件(或您正在使用的任何内容)并将其隐藏

  
      
  • CSS:display: none / height: 0; overflow: hidden
  •   
  • JS:$(object).hide()
  •   

当你想要它时

  
      
  • 显示:$(object).show()
  •   
  • 淡入淡出:$(object).fadeIn('slow')
  •