重复下载 - Cordova / Framework7

时间:2017-02-12 19:10:06

标签: javascript jquery cordova html-framework-7

EDITED : 我有一个下载文件的功能和一个事件来监听启动此下载的点击

事件:

$$('button').on('click', function() {                                   
    var media = $$(this).attr('data-url');              
    Download(media);
    }
});

"下载"是一个延迟完成的功能......当它运行时,如果我点击其他按钮来获取其值,那么"媒体" var将获得第一个按钮的值 - 这正在"下载"功能

我如何修复它?

由于

2 个答案:

答案 0 :(得分:1)

我这样解决:

我的页面有几个按钮,我认为它导致了冲突。所以,我创建了一个带有部分链接的“动态类”,并将事件链接到它们,而不是按钮。

    //My file is in this link. The absolute link to my jpg file will be catched in JSON inside here...
    var link = 'https://www.myserver1.com/f/wPAU322jT36/'; 
    var id_link_1 = link.substring(28,100); //-> wPAU322jT36/
    var id_link = id_link_1.replace('/',''); //-> wPAU322jT36

所以,我把它作为html的一个类:

   //data-url is my .jpg file catched in JSON in link above
    var html = '<button data-url="https://www.myserver1.com/myfie.jpg" class="btn btn-primary btn-lg btn-block '+id_link+'"';

所以,我在一个事件中称它为

$$('.'+id_link+'').on('click', function() {                                   
    var media = $$(this).attr('data-url');              
    Download(media);
    }
});

所以我得到了独特的课程。现在,它有效:)

答案 1 :(得分:0)

我之前和你有同样的问题。然后我解决了他们。

尝试将.off('click')置于.on('click')之前,它将解决您的问题。

所以它看起来像:

$$('button').off('click').on('click', function() {                                   
  var media = $$(this).attr('data-url');              
  Download(media);
});

最后在函数内添加off('click')

$$('button').on('click', function() {                                   
  var media = $$(this).attr('data-url');              
  Download(media);
  $$(this).off('click');
});