2012-05-02 22 views
2

我想获得按钮ID onclick并将其应用于其他函数。这是我的代码:点击获取按钮ID并将其应用于使用javascript的函数

<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:

//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)整个脚本停止工作。我该如何修复它

+1

您在函数范围中声明了'button_id'。所以它只存在于'reply_click'函数中。我认为你打算在全球范围内宣布它,而不是所有功能。 – Travesty3

回答

2

button_id必须对reset可见。在外部声明:

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()函数中。

相关问题