Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Tweet按钮没有';我不能正常工作。jQuery_Javascript_Jquery_Function - Fatal编程技术网

Javascript Tweet按钮没有';我不能正常工作。jQuery

Javascript Tweet按钮没有';我不能正常工作。jQuery,javascript,jquery,function,Javascript,Jquery,Function,我正在建立一个随机报价机。我有一个推特按钮来分享报价。它可以工作,但只有在我首先单击“生成报价”按钮之后。如果我在页面加载后直接点击“tweet”,它就不工作了。 我知道这是因为我的$(“.twitter共享按钮”).attr(“href”,”https://twitter.com/intent/tweet?text=“+此引文)代码在$(“#gen”)中。在(“click”,function(){,但我不知道如何将其删除到该函数之外 当我把它放在外面时,它就不起作用了,因为thisQuotev

我正在建立一个随机报价机。我有一个推特按钮来分享报价。它可以工作,但只有在我首先单击“生成报价”按钮之后。如果我在页面加载后直接点击“tweet”,它就不工作了。 我知道这是因为我的
$(“.twitter共享按钮”).attr(“href”,”https://twitter.com/intent/tweet?text=“+此引文)代码在
$(“#gen”)中。在(“click”,function(){
,但我不知道如何将其删除到该函数之外

当我把它放在外面时,它就不起作用了,因为
thisQuote
var的值是在
$(“#gen”)中传递的

当我尝试将所有代码放在
$(“#gen”)。在(“click”)上,function(){
停止工作

在这种情况下,如何正确地排序功能

我的笔:


您必须在页面加载完成时检索随机引用,而不是仅在单击按钮时检索

我制作了一个单独的方法,因此更易于阅读和维护

试试这个:

$(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);
        });
    }

});
代码笔:


您必须在页面加载完成时检索随机引用,而不是仅在单击按钮时检索

我制作了一个单独的方法,因此更易于阅读和维护

试试这个:

$(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);
        });
    }

});
代码笔:


您可以在第一次单击时触发一次,将href分配给您的“tweet按钮”

如果您需要以威廉·莎士比亚的默认句子开头,您可以添加以下内容


您可以在第一次单击时触发将href分配给“tweet按钮”

如果您需要以威廉·莎士比亚的默认句子开头,您可以添加以下内容

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