• ベストアンサー

attrでエレメントIDを変更したが実行できない

$("#update").prop("id","default_insert"); $("#default_insert").prop("value","新規作成"); 元エレメントID(update)から変更後のエレメントID(insert)に変更しましたが jqueryのclickが実行されなくて困っております。 エレメントIDがまるっきり変わっていないのかなと思って検証で確認は しましたが、確かにエレメントIDが変わっているが確認しております。 別のエレメントIDに変更しましたが、動作が変わりません。 どなたか大変恐縮ですが、解決策のご教示お願いできないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.1

そのコードは間違っていません。 そこ以外の場所が間違っているだけだと思います。 実際にコードはdefault_insertとinsertで違うとかありませんか?

sato965
質問者

補足

--------------------------------------------------------------------- [create-id.js] $(function() { $('a') .click(function() { var id = this.id; if(id == "create") { $(".delete").attr("class","default_insert"); $(".default_insert").attr("value","新規作成"); } }); }); --------------------------------------------------------------------- [insert-data.js] $(function() { $(".default_insert").click(function(){ alert("ssssss"); //return false; }); }); --------------------------------------------------------------------- ちなみに今作っているものです。もしよろしければご確認お願いします。 [ボタンをクリック]→[dialogが開かれる]→[新規作成のメニュをクリック] →[新規作成ボタンを押す]→[SSSS]が表示される [ボタンをクリック]→[dialogが開かれる]→[I3001をクリック]→[新規作成のメニュをクリック]→[新規作成ボタンを押す]→[SSSS]が表示されない http://low-cost-travel.chobi.net/start_dialog.php

その他の回答 (1)

  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.2

質問文では「prop」を使っていますが、補足では「attr」になっています。 質問文では「id」を変更していますが、補足では「class」を変更しようしようとしているように見えます。 少なくともこの2点のせいで期待通りに動かないのだと思います。 まず、「attr」なんて絶対に使わないでください。これを使うことはまずありません。「prop」を使ってください。まだ「attr」を使用するサンプルを紹介しているサイトもありますが、そこは内容が腐っているゴミサイトなので二度と参照しないようにしましょう。 それからclassの変更にはaddClass, removeClassを使ってください。 もしかしたら他にも間違いがあるかもしれませんが、この2点を修正すれば少しは前進するのではないかと思います。

関連するQ&A