2017-03-05 6 views
0

我正在構建一個隨機引用機器。我有一個推特按鈕來分享報價。它工作,但只有在我點擊「生成報價」按鈕後。如果我在加載頁面後直接點擊「tweet」 - 它不起作用。 我知道這是因爲我的$(".twitter-share-button").attr("href", "https://twitter.com/intent/tweet?text=" + thisQuote);代碼在$("#gen").on("click", function(){之內,但我不知道如何在此函數之外將其刪除。Tweet按鈕無法正常工作。 jQuery

當我把它放在外面它不工作,因爲價值的thisQuote VAR是內$("#gen").on("click", function(){

過去了當我試圖把所有的代碼$("#gen").on("click", function(){它停止工作之前。

在這種情況下,我該如何訂購功能?

我的筆:http://codepen.io/s4ek1389/pen/zZGNWw?editors=1010

$(document).ready(function(){ 
    var thisQuote = ""; 
    $("#gen").on("click", function(){ 

    $.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&callback=", function(json) { 



    var author = ""; 
    var quote = ""; 

    $.ajaxSetup({cache:false}); 

    json.forEach(function(val){ 
    author+= val.title;  
    quote+= val.content; 
    var shortQuote = quote.slice(3,-5); 
thisQuote = shortQuote + " - " + author; 

$("#author").html(author); 
    $("#mainquote").html(quote); 
    }) 

    $(".twitter-share-button").attr("href", "https://twitter.com/intent/tweet?text=" + thisQuote); 


}); 

    });  


    }); 

回答

1

你有當頁面加載完成,而不是點擊按鈕只有當檢索隨機引用。

我做了一個分離的方法,所以它更容易閱讀和維護。

試試這個:

$(document).ready(function() { 
    var thisQuote = ""; 

    getRandomQuote(); 

    $("#gen").on("click", function() { 
     getRandomQuote(); 
    }); 

    function getRandomQuote() { 
     $.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&callback=", function (json) { 

      var author = ""; 
      var quote = ""; 

      $.ajaxSetup({ cache: false }); 

      json.forEach(function (val) { 
       author += val.title; 
       quote += val.content; 
       var shortQuote = quote.slice(3, -5); 
       thisQuote = shortQuote + " - " + author; 

       $("#author").html(author); 
       $("#mainquote").html(quote); 
      }) 

      $(".twitter-share-button").attr("href", "https://twitter.com/intent/tweet?text=" + thisQuote); 
     }); 
    } 

}); 

CodePen:

http://codepen.io/anon/pen/PpzvvP

1

可以觸發點擊第一時間將href分配給您的 「鳴叫按鈕」

$("#gen").trigger("click"); 

http://codepen.io/sassoli/pen/yMJWZo

,如果你需要開始與威廉·莎士比亞的默認句子,相反,你可以添加此

http://codepen.io/sassoli/pen/OpXYGM

$(".twitter-share-button").attr("href", "https://twitter.com/intent/tweet?text=" + $("#mainquote").text()+ " - "+ $("#author").text());