2013-07-09 121 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.