2

画像とテキストのページがあります。

ユーザーは、モーダルウィンドウを介して画像をアップロードできます。.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、Rails3.2.2jquery1.7.2を使用しています

4

2 に答える 2

2

残念ながら、 jQueriesは要素に対してChangeのみ機能しINPUTます。

あなたがしなければならないことは、イベントハンドラーを作成し、トリガーを起動することです。アップロードが終了したとき、または画像が変更されると予想されるときはいつでも、jQueriesイベントとトリガーシステムを使用できます

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

$('#foo').trigger('customEvent');
于 2012-04-25T08:46:54.820 に答える
0

変更は、値が変更された場合にのみ入力要素でトリガーを取得するイベントです。属性が変更されてもトリガーされません。必要なのは、属性の変更を監視するものです。これは、そのようなことを実現する方法を説明するリンクです。基本的には、タイムアウトを使用して、属性が変更されたことを定期的にチェックしています。

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

IEでは、これらの変更でトリガーされるpropertychangeを使用できますが、これはIEのみです。

于 2012-04-25T08:40:47.907 に答える