无法通过 jQuery 单击 addThis 按钮
addThis button not clickable via jQuery
我已经尝试查看 addThis 的文档,它似乎正在更新或其他原因,因为所有 links 这些帮助帖子 link 甚至都没有提到 API 他们描述的位。
无论如何,
我只需要能够以编程方式单击 addThis 按钮。但是,在我的代码中实现它之前,我似乎无法通过控制台来完成它。
我读到这与仅在文档加载完成时添加 addThis 侦听器的方式有关。这对我来说没有意义,因为即使我手动尝试触发控制台中的点击,它仍然只执行 return 我正在尝试触发的 link 的 html .例如:
`$('.at-svc-facebook').click();`
OR `$('.at-svc-facebook').trigger('click');`
OR `$('.at-share-btn.at-svc-facebook').click();`
我的意思是,当我打开控制台时,dom 已经准备就绪。那么还有什么可能阻止我通过 jQuery 单击这些按钮?
我试过自己给一个元素添加一个监听器,然后以编程方式单击它,它起作用了。所以 addThis 监听点击的方式有所不同。我可能会用检查他们的 js 后发现的东西更新这个问题。
===================
这就是 addThis 填充和监听的 DOM 中的内容:
<div class="addthis_sharing_toolbox"></div>
这就是代码从 addThis:
转入的内容 ^
<div class="addthis_sharing_toolbox" data-url="http://localhost:8001/halloween/" data-title="33 Halloween Costume Ideas">
<div id="atstbx" class="at-share-tbx-element addthis_32x32_style addthis-smartlayers addthis-animated at4-show">
<a class="at-share-btn at-svc-facebook">
<span class="at4-icon aticon-facebook" title="Facebook"></span>
</a>
<a class="at-share-btn at-svc-twitter">
<span class="at4-icon aticon-twitter" title="Twitter"></span>
</a>
<a class="at-share-btn at-svc-google_plusone_share">
<span class="at4-icon aticon-google_plusone_share" title="Google+"></span>
</a>
</div>
</div>
现在,您可以看到我用来单击按钮的 jQuery 以及它试图单击的代码。
改变
var class_name = $(this)[0].className;
如下,
var class_name = $(this)[0].attr('class');
它会起作用的。 :)
问题是 addThis 出于某种原因在 DOM 中放置了第二个 link 和完全相同的 class。它生成一些 HTML 并将其附加到正文。
所以我需要对 select 按钮和触发点击执行的操作是指定元素数组中的第二个元素并调用点击该元素。像这样:
$('.at-svc-facebook')[1].click();
现在,我面临的下一个问题是 chrome 阻止程序弹出窗口,但这超出了这个问题的范围。 :(
我已经尝试查看 addThis 的文档,它似乎正在更新或其他原因,因为所有 links 这些帮助帖子 link 甚至都没有提到 API 他们描述的位。
无论如何,
我只需要能够以编程方式单击 addThis 按钮。但是,在我的代码中实现它之前,我似乎无法通过控制台来完成它。
我读到这与仅在文档加载完成时添加 addThis 侦听器的方式有关。这对我来说没有意义,因为即使我手动尝试触发控制台中的点击,它仍然只执行 return 我正在尝试触发的 link 的 html .例如:
`$('.at-svc-facebook').click();`
OR `$('.at-svc-facebook').trigger('click');`
OR `$('.at-share-btn.at-svc-facebook').click();`
我的意思是,当我打开控制台时,dom 已经准备就绪。那么还有什么可能阻止我通过 jQuery 单击这些按钮?
我试过自己给一个元素添加一个监听器,然后以编程方式单击它,它起作用了。所以 addThis 监听点击的方式有所不同。我可能会用检查他们的 js 后发现的东西更新这个问题。
===================
这就是 addThis 填充和监听的 DOM 中的内容:
<div class="addthis_sharing_toolbox"></div>
这就是代码从 addThis:
转入的内容 ^<div class="addthis_sharing_toolbox" data-url="http://localhost:8001/halloween/" data-title="33 Halloween Costume Ideas">
<div id="atstbx" class="at-share-tbx-element addthis_32x32_style addthis-smartlayers addthis-animated at4-show">
<a class="at-share-btn at-svc-facebook">
<span class="at4-icon aticon-facebook" title="Facebook"></span>
</a>
<a class="at-share-btn at-svc-twitter">
<span class="at4-icon aticon-twitter" title="Twitter"></span>
</a>
<a class="at-share-btn at-svc-google_plusone_share">
<span class="at4-icon aticon-google_plusone_share" title="Google+"></span>
</a>
</div>
</div>
现在,您可以看到我用来单击按钮的 jQuery 以及它试图单击的代码。
改变
var class_name = $(this)[0].className;
如下,
var class_name = $(this)[0].attr('class');
它会起作用的。 :)
问题是 addThis 出于某种原因在 DOM 中放置了第二个 link 和完全相同的 class。它生成一些 HTML 并将其附加到正文。
所以我需要对 select 按钮和触发点击执行的操作是指定元素数组中的第二个元素并调用点击该元素。像这样:
$('.at-svc-facebook')[1].click();
现在,我面临的下一个问题是 chrome 阻止程序弹出窗口,但这超出了这个问题的范围。 :(