我知道我应该使用on()方法来触发附加元素而不使用click(),所以:
$('#change_profile_img').on('click', function(){
alert(1);
});
所以上面的代码在任何元素上都能正常工作,除非附加元素,例如,我附加:
$('.companylogo:first').append('<a id="change_profile_img" class="ic_change">CHANGE IMAGE</a>');
在附加后,它不起作用,但在页面刷新后它可以正常工作。 我应该提到的另一件事是,我正在从一个模态页面进行追加,它会附加按钮和一切,但我不能再触发它了......
我会感激任何帮助。 感谢
答案 0 :(得分:2)
这应该适合你:
$(".companylogo").on("click", "#change_profile_img", function() {
alert(1);
});
答案 1 :(得分:1)
以这种方式使用
$(document).on('click','#change_profile_img', function(){
alert(1);
});
<强>更新强>
选中此DEMO
href
代码
a
答案 2 :(得分:1)
您可以尝试在附加此类元素时委派click事件。
$('.companylogo:first')
.append('<a id="change_profile_img" class="ic_change">CHANGE IMAGE</a>')
.delegate('#change_profile_img', 'click', function(){
alert(1);
});
答案 3 :(得分:0)
请试试这个:
function GetIt()
{
$('#change_profile_img').on('click', function(){
alert(1);
});
}
你可以在body onload和每个附加时间调用 GetIt()函数。
答案 4 :(得分:0)
我不知道为什么它不在这个页面上工作,但最后我通过清除问题解决了它! 我从一开始就把附加的元素放在页面上,显示='无',在模态上而不是附加它们,我只是show()编辑它们,现在一切正常,谢谢大家