我正在努力在同一个网页上创建两个“pluploader”对象(但是,我怀疑无论问题的解决方案是什么,它都适用于任何对象)。
我在类的方法中使用了pluploader javascript,我调用了两次但是传入了不同的变量。我将发布一个代表性的代码示例,以便保持清晰。
<script type="text/javascript">
var JTpluploader = "<?php echo $this->browseButtonID; ?>";
var browseButtonDivID = "<?php echo $this->browseButtonDivID; ?>";
var dragDropAreaID = "<?php echo $this->dragDropAreaID; ?>";
var pluploadUploadContainerID = "<?php echo $this->pluploadUploadContainerID; ?>";
jQuery(document).ready(function($){
/* **************************** */
// SET UP NECESSARY VARIABLES
/* **************************** */
JTpluploader = "<?php echo $this->browseButtonID; ?>";
browseButtonDivID = "<?php echo $this->browseButtonDivID; ?>";
dragDropAreaID = "<?php echo $this->dragDropAreaID; ?>";
pluploadUploadContainerID = "<?php echo $this->pluploadUploadContainerID; ?>";
// create the uploader and pass in variables that I set up earlier in $plupload_init
window[JTpluploader] = new plupload.Uploader(<?php echo json_encode($plupload_init); ?>);
然后我像这样访问pluploader ......
window[JTpluploader].bind('Init', function(up){
var uploaddiv = $('#'+pluploadUploadContainerID);
// rest of code in here...
}
这一切似乎都有效但我注意到一个问题,当我试图'隐藏'和'显示'按钮点击等div。
此代码不起作用...
showHideAfterUploadClicked();
function showHideAfterUploadClicked() {
jQuery('#'+browseButtonDivID).hide();
}
这个代码在运行时被调用两次,传入了不同的变量,但是(在用'alerts'和'console logs'编写代码之后,似乎第二次调用代码我覆盖了变量。这也是由第二个上传者工作的事实支持。
我确信我应该以不同的方式实现这一点但是(因为我相信你可以告诉我)我对javascript / jquery很新,所以我不知道最好的方法。我一直在谷歌搜索.bind函数,看看有没有办法以某种方式设置一个对象或类或类似的东西来处理所有这些,但我让自己迷失了?
帮助。 :-)