2016-09-18 11 views
0

私は3日間、attr()がJqueryの関数内で動作しない理由を理解しようとしています。質問はすでに答えられているように見えるかもしれませんが、誰も私のために働いていません。Jquery attr()がクリック関数内で動作しない

data-textアトリビュートをツイートボタンから現在のテキストにツイートするように変更しようとしています。

ここ

が私のコードです:Jsfiddleで

$(".twitter-share-button").attr("data-text", "Hello World"); //Working 

$("#change").on("click", function() { 
    $(".twitter-share-button").attr("data-text", "Hello Universe"); // Not working 
}); 

例:https://jsfiddle.net/ooneskbe/

+0

を多分 'cilck'イベントが発生しませんでした。 – Mohammad

+0

これは、関数内でattrとは関係なく、twitterコードがあなたの要素を新しい要素に置き換え、あなたの 'data-text'を別の場所に保存するため、機能しません。 – tkausl

+0

うまく動作するように見える - > https://jsfiddle.net/adeneo/ooneskbe/1/ボタンはiFrameに挿入され、pageloadの属性値をとります – adeneo

答えて

1

あなたの質問は全体像を表すものではありません。これがうまくいかない理由は、次のスクリプトを含むためです。

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script> 

このスクリプトはHTMLを変更します。スクリプトが含まれていない場合は、ボタンの生成されたHTMLは、しかし

<a class="twitter-share-button" href="https://twitter.com/share" data-show-count="false" data-size="large">Tweet</a> 

あるとすぐに、このスクリプトがロードされ、実行されるよう、あなたのHTMLは

<a class="btn" id="b" href="https://twitter.com/intent/tweet?original_referer=https%3A%2F%2Ffiddle.jshell.net%2F_display%2F&amp;ref_src=twsrc%5Etfw&amp;tw_p=tweetbutton&amp;url=https%3A%2F%2Ffiddle.jshell.net%2F_display%2F"> 
    <i></i> 
    <span class="label" id="l">Tweet</span> 
</a> 

は、あなたが新しいHTMLことを確認することができなりましたクラスはtwitter-share-buttonではありません。私はあなたがデータ属性で達成しようとしていることを確信していませんが、これを行うには他の方法を考える必要があります。

+0

ランダムに生成された見積もりをつぶすつもりです。ページが最初に読み込まれたときにうまく動作しますが、その見積もりを変更するボタンをクリックしても機能しません。 –

+0

私はランダムな引用符を生成し、twitterで共有する必要があります。 無料コードキャンプの小さなアプリケーションです:https://codepen.io/sadraque/full/kkrypA –

+0

@SadraqueSantos Twitterウィジェットスクリプトがまだ実行されていないため、ページが初めて読み込まれたときに動作します。クラス 'twitter-share-button'で要素を探します。スクリプトが実行された後、このクラスはもう存在しません。 – dotnetom

0
$(".twitter-share-button").attr("data-text", "Hello World"); 
var dataObj = $(".twitter-share-button").data(); 
$("#change").on("click", function() { 
    dataObj.text = "Hello Universe"; 
    $(".twitter-share-button").data(dataObj); 
}); 

それを試してみてください:https://jsfiddle.net/667f171z/1/

+0

詳細を編集してください。コード専用と「試してください」の回答は、検索可能なコンテンツが含まれていないため、推奨されません。なぜ誰かが「これを試してみる」べき理由を説明しません。 – abarisone

関連する問題