当图像更改时,如何调用 jQuery 函数

How can I call a jQuery function when an image changes?

本文关键字:调用 函数 jQuery 何调用 图像      更新时间:2023-09-26

我有一个包含图像和文本的页面。

用户可以通过模式窗口上传图像。我使用 .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

不幸的是,

jQuery Change只适用于INPUT元素。

您需要做的是创建一个事件处理程序并触发一个触发器。当上传完成或您希望图像更改时,您可以使用jQuery事件和触发系统

$('#foo').bind('customEvent', function() {
      alert($(this).text());
});
$('#foo').trigger('customEvent');

更改是一个事件,仅当输入元素的值发生变化时,它才会触发输入元素。如果属性发生更改,则不会触发它。你想要的是监视属性变化的东西。这是一个链接,解释了如何实现这些事情,基本上它只是使用超时来定期检查属性是否已更改。

http://darcyclarke.me/development/detect-attribute-changes-with-jquery/

在IE中,您可以使用属性更改,它将在这些更改时触发,但这只是IE