2016-09-25 7 views
1

ターゲットページでは、このソースを持っています動的に変更されたボタンをクリックしますか?

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"); 
     } 
    }); 
}); 

私が何をしようとしているダウンロードをクリックすることです!数秒後に表示されるとボタンが表示されます。

私はこのコードを使用してしようとした:

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

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

しかし、それは動作しません!私は問題が#buttonにあると思うが、私はそれを把握できなかった。私の弱い知識をJSに残して申し訳ありません。

+0

私は試しましたが動作しません –

答えて

2

コードは#buttonの存在を待っています。何をする必要があるかは、#buttonの存在については、の両方をとし、ボタンのテキストを「ダウンロード」にしてください。この場合

、あなたがそうのようなjQueryのセレクタをチューニングするだけでそれを行うことができるようになります。より複雑なケースについては

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


、あなたはuse more fine tuning with waitForKeyElements()する必要があるかもしれません。

+0

ありがとうございました!今分かります! –

+0

あなたは大歓迎です。喜んで助けてください。 –

関連する問題