2013-07-09 78 views
2

我正在尝试使用jQuery更改数据网址。目前我的代码看起来像这样。更改twitter链接的属性

<div id="twitterButton" title="Tweet it on Twitter"><a href="https://twitter.com/share" id="tweet" class="twitter-share-button" data-url="" data-related="jasoncosta" data-lang="en" data-size="large" data-count="none">Tweet</a></div> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#twitterButton').click(function() { 
     $('#tweet').attr("data-url", "https://www.google.com/"); 
    }); 
});</script> 

正如你所看到的,我留下了url-data空白,所以我可以确定它只是在jQuery中设置。然而,无论何时点击推文按钮,它总是会打开窗口,并显示当前页面的链接。有人可以解释如何通过jQuery或JavaScript将其设置为其他内容吗?

+0

如果其中一个答案解决了您的问题,那么您应该考虑将其标记为“已接受” – Sharlike

回答

4

您应该使用.data()来控制数据属性。正如Daniele在回答中所述,您还必须使用preventDefault()停止a元素上的事件传播。

$('#twitterButton').click(function (e) { 
    $('#tweet').data('url',"https://www.google.com"); 
    e.preventDefault(); 
}); 
+1

是的,这是一种可取的方法,无论如何它不能解决事件传播的问题,但Daniele Montes解决方案是正确的! – Magico

+1

谢谢你们真的很有帮助 – joe

+0

@Magico是的,你是对的,我更新了答案。谢谢! – Sharlike

3

您必须调用的preventDefault()方法来阻止点击事件的传播对孩子一个元素:

试试这个代码:

$('#twitterButton').click(function (e) { 
    $('#tweet').attr("data-url", "https://www.google.com/"); 
    e.preventDefault(); 
}); 

好码

D.