2016-09-25 11 views
1

Zielseite hat diese Quelle:Klicken Sie auf eine Schaltfläche, die dynamisch geändert wird?

jQuery(function() { 
    var delay = 1000; //1 sn 
    var id = "0b9cfb9f62ef7a2"; 
    jQuery.ajax({ 
     "method":"get", 
     "url":"?ajax="+id, 
     "success": function (json) { 
      //alert(json); 
      json = JSON.parse(json); 
      setTimeout(function(){ 
       if(json.data != ""){ 
        jQuery("#button").attr("class","btn btn-block btn-danger"); 
        jQuery("#button").text(json.data); 
       }else{ 
        jQuery("#button").click(function(){location.href=json.url}); 
        jQuery("#button").attr("class","btn btn-block btn-success"); 
        jQuery("#button").text("Download!"); 
       } 
      },delay); 
     }, 
     "error":function(){ 
      alert("XXX"); 
     } 
    }); 
}); 

Was ich versuche zu tun, um die Herunterladen klicken! Taste einmal nach einigen Sekunden erscheint.

Ich habe versucht, mit diesem Code:

waitForKeyElements ("#button:contains('Download')", clickSubmitBtnWhenItAppears); 

function clickSubmitBtnWhenItAppears (jNode) { 
    var clickEvent = document.createEvent ('MouseEvents'); 
    clickEvent.initEvent ('click', true, true); 
    jNode[0].dispatchEvent (clickEvent); 
} 

Aber es funktioniert nicht! Ich denke, das Problem ist auf #button, aber ich konnte es nicht herausfinden. Entschuldigung für meine schwachen Kenntnisse in JS.

+0

Ich habe versucht, aber es funktioniert nicht –

Antwort

2

Ihr Code wartet auf die Existenz von #button. Was es tun muss, ist warten sowohl für die Existenz von #buttonund für Schaltfläche, um den Text "Download" zu haben.

In diesem Fall sollten Sie in der Lage sein, es nur zu tun, indem Sie die jQuery-Selektor Abstimmung wie folgt:

waitForKeyElements ("#button:contains('Download')", clickSubmitBtnWhenItAppears); 


Für komplexere Fälle, die Sie use more fine tuning with waitForKeyElements() benötigen.

+0

Vielen Dank! Jetzt verstehe ich! –

+0

Gern geschehen; froh, dass ich Helfen kann. –

Verwandte Themen