在ajax加载我想要点击的内容后,无法在我的代码中执行.click()

时间:2017-02-10 23:29:44

标签: javascript ajax userscripts

我正在编写一个用户脚本,它会在调用Ajax更新的按钮上显示.click(),加载后我需要.click()在这个Ajax更新加载的按钮上。

这是我正在使用的代码:

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

编辑:我忘了提到脚本在点击两页之间跳转。第一个工作,但第二个.click()返回我尝试.click()的按钮未定义。所以我认为我有一个糟糕的选择器并从Chrome开发工具中复制它。但问题仍然存在。有人建议将.click()放入Ajax回调中,但我还必须插入将此.click()插入到现在按钮的代码,它将永远存在。

1 个答案:

答案 0 :(得分: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);
    });