我有一个包含图片和文字的页面。
用户可以通过模态窗口上传图像。我使用.js.erb将页面上的图像替换为用户上传的图像。
$('#mailing_body').contents().find("[data-edit-img='<%=escape_javascript(@user_image.location)%>']").attr('src', '<%=escape_javascript(@user_image.image.url(:medium))%>');
现在我希望在页面上的图像发生变化时触发jquery函数。
我在js文件中尝试了以下内容:
$("#mailing_body").contents().find("[data-edit-img='header']").live('change',function(){
alert('change');
});
但它不起作用。我做错了什么?
我正在使用Ruby 1.9,Rails 3.2.2 jquery1.7.2
答案 0 :(得分:2)
Change
仅适用于INPUT
个元素。
您需要创建一个事件处理程序并触发一个触发器。 如果上传完成或您希望图像发生变化,您可以使用jQueries event and trigger system
$('#foo').bind('customEvent', function() {
alert($(this).text());
});
$('#foo').trigger('customEvent');
答案 1 :(得分:0)
更改是一个事件,仅当输入元素的值更改时才会触发输入元素。如果属性发生更改,则不会触发它。你想要的是观察属性变化的东西。这是一个解释如何实现这些事情的链接,基本上只是使用超时来定期检查属性是否已更改。
http://darcyclarke.me/development/detect-attribute-changes-with-jquery/
在IE中,您可以使用属性更改,这些更改将在这些更改中触发,但这只是IE。