在我的一组重复行(动态创建)的表单中,每一行都有一个按钮,允许用户上传一个文件,然后该文件将链接/绑定到该行中的数据。
head head upload
---- ---- --------
x y <button>
a b <button>
m n <button>
当单击这些按钮中的任何一个时,我显然可以轻松确定我在哪一行。假设我在 id="row_2" 的行中。我在按钮单击调用的函数中有这个。
现在我打电话$("#fileUploader").click()
来启动文件选择对话框。当用户选择一个文件并单击“确定”时,该OnFileUploaderChange()
函数会自动调用。在该函数中,我获得了文件,现在我需要知道初始按钮来自 row_2,因此我可以将它与正确的行链接/关联。
摘要:导致自动触发的OnButtonClick()
触发器。我有一个值,我需要在.OnFileUploaderClick()
OnFileUploaderChange()
OnButtonClick()
OnFileUploaderChange()
我怎样才能做到这一点?!当函数在两者之间被调用时,如何获取我在OnButtonClick()
函数中知道的值并使其在函数中可用(将其传递给) 。OnFileUploaderChange()
OnFileUploaderClick()
我已经弄清楚如何OnFileUploaderClick()
通过更改$("#fileUploader").click()
为$("#fileUploader").trigger('click', [ 2 ])
. 但是该参数仅在内部可用OnFileUploaderClick()
,我需要在OnFileUploaderChange()
.
用户可能会开始上传一个大文件并且(当它仍在上传时)会开始上传另一个较小的文件,以便多个线程同时上传。所以以任何方式使用全局变量都行不通——它必须是一个参数/参数来避免竞争条件和时间问题。
这是一个帮助解释的小提琴:https ://jsfiddle.net/ho819tu0/1/
编辑解决方案:
根据@vincent-d 的评论和下面的回答(现在标记为正确),我已经修复了我的代码,这是另一个展示它是如何工作的小提琴:https ://jsfiddle.net/sm2L9kt8/