2017-02-12 6 views
0

EDITED: Ich habe eine Funktion Dateien und eine Veranstaltung zum Download Klicks zu hören, die diesen Download startenduplizierte Downloads - Cordova/Framework7

Veranstaltung:

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

"Download" eine Funktion ist Diese Verzögerung wird beendet ... Wenn ich in eine andere Taste klicke, um ihren Wert zu erhalten, erhält die "media" -Var den Wert der ersten Taste - Diese wird in der "Download" -Funktion

verarbeitet Ho w ich repariere es?

Dank

+0

Müssen den Problemcode für diese Funktion zeigen – charlietfl

Antwort

1

Ich löse es so aus:

Meine Seite mehrere Tasten hat und ich denke, dass es Konflikte verursacht wurde. Also, ich erstelle eine "dynamische Klasse" mit einem Teil des Links und verknüpfe ein Ereignis mit ihnen, anstatt mit dem Button.

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

Also, ich habe es als eine Klasse in 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+'"'; 

Also, ich nenne es in einem Fall

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

So bekam ich zu einzigartigen Klassen aufgerufen werden. Jetzt funktioniert es :)

0

Ich habe das gleiche Problem mit Ihnen so vor. Dann habe ich sie gelöst.

Versuchen Sie .off('click') vor .on('click') setzen, es wird Ihr Problem gelöst.

So ist es aussehen wird sein:

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

ODER

Fügen Sie die off('click') in Ihrer Funktion am Ende.

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

Ihre Lösung ist gut ... Aber funktioniert nicht für mich ... Ich löse anders ... siehe oben :) –