JS/jQuery 'Tweet this' 按钮不起作用

Posted

技术标签:

【中文标题】JS/jQuery \'Tweet this\' 按钮不起作用【英文标题】:JS/jQuery 'Tweet this' button is not workingJS/jQuery 'Tweet this' 按钮不起作用 【发布时间】:2018-05-29 00:33:17 【问题描述】:

这里是 html 代码:

<a class="tweet">
    <button class="btn btn-default btn-md">

        <i class="fa fa-twitter hidden-sm hidden-md hidden-lg"></i><span class="hidden-xs">Tweet This</span>

    </button>
</a>

以及 JS 的要点

function tweet(message, author) 
  window.open('https://twitter.com/intent/tweet?hashtags=thequotemachine&text=' + encodeURIComponent('"' + message + '" ' + author + " via"));

$('button.tweet').click(function() 
  var currQuote = $('#quote').text();
  var currAuthor = $('#author').text();
  var truncatedString = truncateString(currQuote, currAuthor)
  tweet(truncatedString, currAuthor);
);

当点击它时,它应该采用“报价”,这是页面上的一段文本,并且应该打开一个新窗口供用户“推特”该报价。现在点击时它什么也不做,但我不知道为什么。我确定我错过了一些非常令人尴尬的基本内容。也许我只需要再看一眼这个……

【问题讨论】:

你的 jQuery 选择器是错误的,这就是为什么什么都没有发生。应该只是 $(".tweet").click(func... 同样为了约定,可能需要在第三个变量之后添加一个分号。希望这会有所帮助。 学习使用console.log和debugger语句进行调试 感谢@AndrewGarrison 帮助很大。正如我想的那样,这是我忽略的一些简单的事情。 @epascarello 你会怎么样? 在点击里面添加控制台看是否被调用...不...好的。在函数外部添加一个以查看 javascript 是否正在加载...。好的。是的,现在让我们检查一下是否找到了元素console.log($('button.tweet').length); .... 不...好吧,现在为什么找不到元素...。 【参考方案1】:

您的选择器button.tweet 将匹配button 与类tweet。从您的 HTML 结构中,您需要 .tweet button 或将 .tweet 广告到您的按钮元素。

【讨论】:

啊,所以让“a”类成为“tweet”是错误的方式吗? 我将完全删除 button 元素,并将 btn btn-default btn-md 添加到锚点。然后将您的选择器更改为 .tweet

以上是关于JS/jQuery 'Tweet this' 按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章

js/jquery this 坑

Twitter按钮不会附加站点URL

js+jquery 常用选择器函数

js jquery 实现点击按钮后,倒计时60秒才能再次点击发送验证邮件

jQuery中this与$(this)的区别实例

复选框不通过 Apple 设备中的 js/jquery 按钮检查