2017-02-10 8 views
0

Ajaxの更新を呼び出すボタンに.click()というユーザースクリプトを作成しています。このAjaxアップデートによってロードされたボタンの.click()Ajaxがコンテンツを読み込んだ後で、コード内で.click()を実行できません。

document.querySelectorAll('#main > div:nth-child(6) > input:nth-child(6)')[0].click(); 
setTimeout(function() { document.querySelectorAll('#main > div:nth-child(6) > input:nth-child(8)')[0].click(); }, 1000); 

EDIT:私はスクリプトをクリックして2つのページ間でジャンプすることを言及するのを忘れてしまったの

これは私が使用していたコードです。最初のものは動作しますが、2番目の.click()は、私が.click()しようとしているボタンが未定義であることを返します。だから、私は悪いセレクタを持っていると思って、Chromeの開発ツールからコピーしました。しかし、問題は依然として続く。誰かがAjaxコールバックに.click()を置くように提案しましたが、私はこの現在のボタンにこの.click()を挿入するコードを挿入しなければならず、それは永遠に続くでしょう。

+0

DOMを更新した後、AJAXコールバックに '.click()'を呼び出すコードを挿入します。 – Barmar

答えて

0

あなたはコードスニペットの多くを残しているようです(フォーマットされているのもうれしいでしょう)。あなたのajaxコールでは、これをあなたの "成功"ブロックに入れておくべきです。

ボタン上に既に存在するリスナーのクリックをトリガーしたいとします。最初にリスナーをバインドし、ユーザーアクションでクリックをトリガーします。

$.ajax({ 
     url: 'MyURL', 
     contentType: 'YourContentType', 
     type: 'GETorPOST', 
     dataType: 'yourDataType'}) 
    .success(function (result) { 
     $("#myButton").trigger("click"); 
     OR 
     clickYourButtonFunction(); 
    }) 
    .error(function (xhr, status) { 
     console.log(status); 
    }); 
関連する問題