2013-06-28 2 views
1

사용자가 버튼 ("생성")을 클릭하여 json 파일에서 가져온 텍스트를 사용하여 임의의 구문을 동적으로 생성하는 페이지가 있습니다. 문구는 div (# 생성 됨)에 배치되어 이전에 있던 내용 (버튼을 클릭하기 전)을 대체합니다. 구문 생성은 완벽하게 작동합니다. 지금 추가하고 싶은 것은 사용자가 트윗 버튼을 클릭하여 해당 구를 공유하는 방법입니다. data-text 내가 버튼이 후 사업부의 콘텐츠를 사용 트윗 찾고 있어요 무엇jQuery 지연 후 "복사"텍스트

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> 

: 헤더에

<div id="tweet_button"> 
<a href="http://twitter.com/share" 
class="twitter-share-button" 
data-text="This is what we want to change dynamically" 
data-count="none">Tweet</a></div> 

플러스이 : 여기

는 트윗 버튼 코드입니다 눌렀다. 여기에 내 문제입니다 :

$(document).ready(function(){ 
$.getScript('http://platform.twitter.com/widgets.js'); 
$('a[data-text]').each(function(){ 
$(this).attr('data-text', $('#generated').text()); 
}); 
}); 

다음 물론, "생성"전 사업부에서 사용했던 "이것은 우리가 동적으로 변경할 것입니다"에서 data-text 변경 :

첫째,이 시도하는 경우 버튼을 눌렀습니다 (즉, 문서가 준비되었을 때 무엇이 ​​있었는지). 1, 버튼을 클릭 한 초 지연을 "생성"때까지 (이 기다릴 것입니다 내 마음에

$("generate").click(function() { 
setTimeout(function(){ 
$.getScript('http://platform.twitter.com/widgets.js'); 
$('a[data-text]').each(function(){ 
$(this).attr('data-text', $('#generated').text()); 
}); 
}, 
1000); 
}); 

: 그래서, 나는이 코드를 사용할 수 있고 data-text이 사업부의 새로 생성 된 내용에 변경 거라 생각 div 콘텐츠가 변경되었는지 확인한 다음 data-text을 div의 새 콘텐츠로 업데이트하십시오. 물론 이것은 작동하지 않습니다.

이상적으로 data-text은 '생성'버튼을 클릭 할 때마다 업데이트됩니다. 이 작업을 수행 할 수있는 것처럼 보일 수도 있지만 (지금까지는 위에서 설명한 첫 번째 부분에 대해 걱정했습니다.)

호핑이 의미가 있습니다 ... 실제로 어떤 생각을 할 수 있습니까? 이 완벽한 신인을 도와 주셔서 감사합니다. 당신이

을 "#generated"의 텍스트를 변경 아약스 기능을 사용하기 때문에 물론

http://jsfiddle.net/mattydsw/xAq5t/

$("#generate").click(function() { 
    $("#tweet_button").empty(); 
    $("#tweet_button").append('<a href="http://twitter.com/share" class="twitter-share-button" data-text="' + $('#generated').text() + '" data-count="none">Tweet</a>'); 
    twttr.widgets.load(); 
}); 

는 당신이 그것을 조정할해야합니다

+0

왜 여기에 $ .getScript를 사용하고 있습니까? 나는 그것을 얻지 않는다 –

+0

머리말에이 전체 트위터 스크립트가 있기 때문에 뒤늦은 관찰에서이 줄이 필요하지 않을 수도 있지만 이것이 문제라고 생각합니까? 나는 그 선을 제거하고 아무런 영향을 미치지 않았다. – jonmrich

+0

확실히, 스크립트를 두 번로드해서는 안되지만 문제는 아닙니다. 사실, 나는 당신의 문제를 정말로 이해하지 못합니다. 클릭 핸들러를 문서에 준비해야합니다. 클릭 이벤트가 발생했는지 확인하십시오. 그러나 동적 텍스트를 어디에서 가져 왔습니까? –

답변

2

나는 "재생"짹짹 버튼처럼 만들어 수정

아마도

$("#generate").click(function() { 
    $('#generated').load('data.txt', function() { 
     $("#tweet_button").empty(); 
     $("#tweet_button").append('<a href="http://twitter.com/share" class="twitter-share-button" data-text="' + $('#generated').text() + '" data-count="none">Tweet</a>'); 
     twttr.widgets.load(); 
    }); 
}); 
+0

"생성"을 클릭하면 텍스트가 변경됩니다. – mkutyba

+0

지금 봅니다. 바이올린에서 저에게 효과가 있지만, 제 페이지에서 제대로 작동하지 않습니다. 최신 jquery ("jquery-latest.min.js")를 얻으려는 전화가 추가되었지만 분명히 누락되었습니다. 나는 프레임 워크와 확장 기능에서 바이올린의 일부를 볼 수있다. jquery는 "onLoad"로 설정되어있다. 내 버전은 분명히 이것을하지 않습니다. 바이올린과 동일한 작업을 수행하기 위해 코드를 어떻게 추가합니까? – jonmrich

+0

http://learn.jquery.com/using-jquery-core/document-ready/ – mkutyba