1

我知道我应该使用 on() 方法来触发附加元素,而不是使用 click(),所以:

$('#change_profile_img').on('click', function(){
alert(1);           
});

所以上面的代码在任何元素上都可以正常工作,除非附加元素,例如,我正在附加:

$('.companylogo:first').append('<a id="change_profile_img" class="ic_change">CHANGE IMAGE</a>');    

附加后,它不起作用,但在页面刷新后它工作得很好。我应该提到的另一件事是,我正在从模式页面进行附加,它附加了按钮和所有内容,但我无法再触发它了......

我将不胜感激任何帮助。谢谢

4

5 回答 5

2

以这种方式使用它

$(document).on('click','#change_profile_img', function(){
    alert(1);           
});

更新

检查此演示

hrefa标签中不见了

于 2012-10-27T09:03:45.163 回答
2

这应该适合您:

$(".companylogo").on("click", "#change_profile_img", function() {
  alert(1);
});
于 2012-10-27T11:02:39.800 回答
1

您可以尝试在像这样附加元素时委托单击事件。

$('.companylogo:first')
    .append('<a id="change_profile_img" class="ic_change">CHANGE IMAGE</a>')
    .delegate('#change_profile_img', 'click', function(){
        alert(1);
});
于 2013-03-02T00:25:18.243 回答
0

请试试这个:

function GetIt()
{ 
    $('#change_profile_img').on('click', function(){
        alert(1);           
    });
}

您可以在正文 onload 和每个附加时间调用GetIt()函数。

于 2012-10-27T10:24:41.150 回答
0

我不知道为什么它在这个页面上不起作用,但最后我通过稍微清除问题来解决它!我从一开始就将附加的元素放在页面上,显示='none',在模态上而不是附加它们,我只是显示()它们,现在一切正常,谢谢大家

于 2012-10-27T10:58:25.520 回答