weixin_33698043 2018-01-21 13:16 采纳率: 0%
浏览 360

href在锚点上不起作用

I have the following piece of javascript. It is using Ajax to get a quote from an API. The quote is presented at the quote div, but the href is not being refreshed at the twitterAnchor.

    jQuery('#button').on('click', function(){
            
        jQuery.ajax({
        url: "http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&  filter[posts_per_page]=1&_jsonp=mycallback",
        type: 'GET',
        dataType: "jsonp",
        success: function(json){
            document.getElementById('quote').innerHTML = json[0].content;
            document.getElementById('twitterAnchor').href =  "https://twitter.com/intent/tweet?text=" + json[0].content;    
            }
        });
    });
<!-- Here is the anchor. -->

      <div id="tweet">
          <a id ="twitterAnchor" href="" class="twitter-share-button" target="_blank" >Tweet</a>  
      </div>

When I click the twitterAnchor the page is refreshed. The console shows me nothing, does anybody have a hint of what is happening?

</div>
  • 写回答

3条回答 默认 最新

  • 衫裤跑路 2018-01-21 13:19
    关注

    The id you are selecting is button, not twitterAnchor. So try jQuery('#twitterAnchor')

    Secondly you will need to prevent the default behavior of the browser when an anchor is clicked:

    jQuery('#twitterAnchor').on('click', function (e) {
      e.preventDefault();
      jQuery.ajax({
        url: "http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&  filter[posts_per_page]=1&_jsonp=mycallback",
        type: 'GET',
        dataType: "jsonp",
        success: function (json) {
          document.getElementById('quote').innerHTML = json[0].content;
          jQuery(this).attr("href","https://twitter.com/intent/tweet?text=" + json[0].content);
        }
      });
    });
    
    评论
  • weixin_33726318 2018-01-21 18:09
    关注

    After one day trying to find the error... that's the solution:

    jQuery('#button').on('click', function(){
    
        jQuery.ajax({
        url: "http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&_jsonp=mycallback",
        type: 'GET',
        dataType: "jsonp",
        success: function(json){
            document.getElementById('quote').innerHTML = json[0].content; 
            }
        });
    });
    
    jQuery('#twitterAnchor').on('click', function () {
        jQuery(this).attr("href","https://twitter.com/intent/tweet?text=" + document.getElementById('quote').innerHTML);
    });
    

    The problem is: if you try to change the href inside the ajax connection, it does not work. I really don't know why, and I would be really glad to know.

    评论
  • weixin_33743703 2018-01-21 18:19
    关注

    Do not assign a new value to href, instead use jQuery attr method.

    $('#twitterAnchor').attr('href', 'https://twitter.com/intent/tweet?text=' + json[0].content);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 PMM 9010/30P
  • ¥15 pom文件依赖管理,未找到依赖
  • ¥15 现在后端返回给我一堆下载地址,都是一个视频切片后的,如何在uniapp安卓环境下将这些分片的视频下周并且合并成原始视频并下载到本地。
  • ¥15 Unity导出2D项目运行时图片变成马赛克
  • ¥15 关于communitytoolkit.mvvm的生成器得到的代码看起来没有被使用的问题
  • ¥15 matlab中此类型的变量不支持使用点进行索引
  • ¥15 咨询第六届工业互联网数据创新大赛原始数据
  • ¥15 Pycharm无法自动补全,识别第三方库函数接收的参数!
  • ¥15 STM32U575 pwm和DMA输出的波形少一段
  • ¥30 android百度地图SDK海量点显示标题