2012-05-02 8 views
2

ボタンIDをクリックして別の機能に適用したいとします。私は全体の$( '#' + button_id)を追加する場合、スクリプトは動作を停止し、クリック時にボタンIDを取得してJavaScriptに関数を適用する

//get button id 
    function reply_click(clicked_id) 
    { 
     var button_id = clicked_id; 
    } 

    function reset() { 
     var input_name = $('#' + button_id).attr('input-name'); 
     var on_change = $('#' + button_id).attr('on-change'); 
     var input = $('<input name="'+ input_name +'" type="file" onchange="'+ on_change +'"/>').appendTo(form); 
     input.change(function(e) { 
      input.unbind(); 
      input.detach(); 
      btn.trigger('choose', [input]); 
      reset(); 
     }); 
    }; 

しかし:

<button id="image-upload-button" onClick="reply_click(this.id)" data-link="<?php echo base_url().'admin/phones/upload_image/'; ?>" input-name="image" on-change="imageUpload(this.form);"></button> 

とJavascript:これは私が持っているコードです。どうすれば修正できますか

+1

関数スコープで 'button_id'を宣言しました。したがって、 'reply_click'関数内にのみ存在します。私はあなたがそれをグローバルなスコープで、すべての機能の外で宣言することを意図したと思います。 – Travesty3

答えて

2

button_idresetに表示する必要があります。外部に宣言してください:

var button_id; 

//get button id 
function reply_click(clicked_id) 
{ 
    button_id = clicked_id; 
} 
+0

@downvoterコメント – paislee

+0

どうすればいいですか?私はそれを機能をリセットするために見えるようにしているのですか? – Afshin

+1

@Afshinは関数の外で 'var button_id'を宣言し、上記のように' reply_click'内の 'var button_id'から' var'を削除します。 – paislee

2

reply_click()関数のスコープ内でbutton_idを宣言しました。 外部変数をグローバル変数として宣言し、reset_click()関数で代入するだけです。

関連する問題