2013-03-01 105 views
0

我有一段代码的问题,我有一个输入文件,用户可以上传文件,当用户选择一个文件,并尝试点击相同的输入,我想显示一个模式框显示确认替换的消息,如果用户点击接受文件浏览器窗口应该出现,现在这部分一个明白了,但是,点击触发jquery循环

当用户单击按钮模式显示,但如果再次调用此模式,它会导致循环并显示几个文件浏览器窗口。哪里不对?

我尝试使用event.preventDefault(),但文件浏览器窗口将不会出现

$(".fileinput-button").click(function (event) { 
    var fileupload = $(this); 

    if ($(this).hasClass('change')) { 
     var name = $('.change').find('span').prop("id"); 
     $("#documentName").html(name); 
     $("#replaceConfirmation").modal('show'); 

     $("#replaceFile").click(function() { 
      fileupload.find('input').trigger('click'); 

      $("#replaceConfirmation").modal('hide'); 
     }); 

    } 

}); 
+0

你有带class = “变” 多元素? '$('。change')'将匹配所有这些,而不仅仅是被点击的那个。 – Barmar 2013-03-01 02:18:47

+0

是的,我有多个元素,哦,任何解决方法? – Overmachine 2013-03-01 02:33:42

+0

使用'fileupload'而不是'$('。change')'。我不知道这是你的全部问题,但它是其中的一部分。 – Barmar 2013-03-01 02:35:24

回答

0

尽量

var fileupload; 

$(".fileinput-button").on('click',function (event) 
{ 
    fileupload = $(this); 
    if ($(this).hasClass('change')) 
    { 
     var name = $('.change').find('span').prop("id"); 
     $("#documentName").html(name); 
     $("#replaceConfirmation").modal('show'); 
    } 
}); 

$("#replaceFile").on('click',function() 
{ 
    fileupload.find('input').trigger('click'); 
    $("#replaceConfirmation").modal('hide'); 
}); 
+0

谢谢,我结束了这样做,拿出第二次点击事件做了伎俩感谢,并对不起,我是新的。 – Overmachine 2013-03-01 13:56:54