【问题标题】:Custom Share using Javascript not working as desired使用 Javascript 的自定义共享无法按预期工作
【发布时间】:2016-11-10 06:48:26
【问题描述】:

我正在开发一个简单的自定义共享,用户将单击共享按钮,该按钮将显示共享选项列表,然后用户可以单击其中任何一个来共享页面。

我在CodePen 上有设置代码,不知道为什么它不起作用。

<html>

<head>
  <script src="https://code.jquery.com/jquery-2.1.4.js"></script>

  <meta charset="utf-8">
  <title>JS Bin</title>
</head>

<body>
  <a class="share-btn" href="#">S</a>
  <div class="share"><a href="http://www.facebook.com/sharer/sharer.php?u=http://domain.com"> F</a>
  </div>

  <div class="share"><a  href="whatsapp://send?text=The text to share!" data-action="share/whatsapp/share">W</a></div>

  <div class="share"><a  href="http://twitter.com/intent/tweet?status=This is the Title+http://domain.com/article/this-is-article
">T</a></div>


</body>

</html>


   jQuery(document).ready(function($) {
     $('.share').click(function() {
       var NWin = window.open($(this).prop('href'), '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');
       if (window.focus) {
         NWin.focus();
       }
       return false;
     });
   });

   $(".share-btn").click(function() {
     $(".share").toggle();
   });

【问题讨论】:

  • 嗯,可能是因为 $(this) 是没有名为 href 的属性的 div。
  • @lain,你说得有道理
  • @lain,你说得对,我把它改成了this'.share &gt; a'

标签: javascript jquery share


【解决方案1】:

将 $('.share').click 更改为 $('.share > a').click 否则 $(this) 指的是没有名为 href 的属性的 div。

这是一个例子: http://codepen.io/anon/pen/rWObQo

$('.share > a').click(function() {

【讨论】:

  • 我必须添加 ID 或类来锚定,否则它将显示所有共享的 facebook。
  • 什么意思?只需更改选择器即可在您的 codepen 上正常工作。
  • 我在sharethis ` $('.sharethis').click(function() {` 上为每个锚点和触发事件添加了类
  • 好吧,您可以随意这样做,但我看不到实际的变化。还是要选择同样的三个锚标签,不是吗?
  • 您的方法也是正确的,我错过了理解并更改此功能内的this 而不是点击事件。我会标记您的回答正确,因为它可以解决问题。但我使用了不同的方法。
猜你喜欢
  • 2017-11-30
  • 1970-01-01
  • 2013-07-02
  • 1970-01-01
  • 2017-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
相关资源
最近更新 更多