1. ホーム
  2. jquery

[解決済み] jqueryでonclickイベントを変更するには?

2023-05-28 04:51:13

質問

動的テーブルを作成し、カレンダーのクリックイベントを動的に変更しているjsファイルを作成しましたが、動的生成テーブルのカレンダー画像をクリックすると、前のカレンダー画像にカレンダーがポップアップします。 私を助けてください

コード

/***------------------------------------------------------------
* 
*Developer: Vipin Sharma
* 
*Creation Date: 20/12/2010 (dd/mm/yyyy)
* 
*ModifiedDate   ModifiedBy      Comments (As and when)
* 
*-------------------------------------------------------------*/
var jq = jQuery.noConflict();
var ia = 1;
jq(document).ready(function(){
    jq("#subtaskid1").click(function() {
        if(ia<=10){
      var create_table = jq("#orgtable").clone();
      create_table.find("input").each(function() {
        jq(this).attr({
          'id': function(_, id) { return ia + id },
          'name': function(_, name) { return ia + name },
          'value': ''               
        });
      }).end();
      create_table.find("select").each(function(){
            jq(this).attr({
                'name': function(_,name){ return ia + name }
            });
      }).end();
      create_table.find("textarea").each(function(){
            jq(this).attr({
                'name': function(_,name){ return ia + name }
            });
      }).end();
      create_table.find("#f_trigger_c").each(function(){
            var oclk = " displayCalendar(document.prjectFrm['"+ ia +"dtSubDate'],'yyyy-mm-dd', this)";                          //ERROR IS HERE
            var newclick = new Function(oclk);
            jq(this).click(newclick);
      }).end();
      create_table.appendTo("#subtbl");
      jq('#maxval').val(ia);
      ia++;
        }else{
            var ai = ia-1;
            alert('Only ' + ai + ' SubTask can be insert');
        }
    });
});

どのように解決するのですか?

を簡単に変更することができます。 onclick イベントを、新しい関数を実行することなく、jQueryで簡単に変更することができます。

$("#id").attr("onclick","new_function_name()");

この行を書くことで、実際に onclick の属性を変更しています。 #id .

を使うこともできます。

document.getElementById("id").attribute("onclick","new_function_name()");