【问题标题】:toggle the value of anchor tag and pass it to the url切换锚标记的值并将其传递给 url
【发布时间】:2017-09-21 13:13:05
【问题描述】:

我想将 ajax url 中的值作为 trans 传递。现在的文本被切换了。但是 url 中的 trans 不会根据 on 和 off 值更新。有什么帮助吗?我需要重新加载页面,因为我正在根据这个 on 和 off 值在我的代码中设置和取消设置某些东西。所以当链接值为“on”时,应该在 url 中传递 on 的值并执行基于他的操作在那..否则基于关闭的操作..在控制台中它只显示“开启”值。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
              $(document).ready(function() {
                  $('#trans_flag').click(function() {
    
                      var trans = $('#trans_flag').text() ;
                      //var trans=$(this).val();
                      if(trans=='on')
                      {
                          $('#trans_flag').text("off")
                          trans='on';
                      }
                      else
                      {
                          $('#trans_flag').text("on")
                          trans='off';
                      }
                      var base_url = '<?=base_url()?>';
                      $.ajax
                      ({
                          'type': 'POST',
                          'url': base_url + 'translation/language/searchUntranslated/'+trans,
                          'success': function(response){
                              window.location.reload();
                              alert(trans);
                              console.log(response);
                          }
                      });
    
                  });
                  });
              </script>
    <a  id='trans_flag' name='trans_flag'>on</a>

【问题讨论】:

  • 为 trans 重新分配值的行是多余的,因为 trans 已经与您重新分配的值相同。
  • 为什么要重新加载页面?这将重置所有代码...如果 {"on"} { 设置 "off" 和 "on" } 刷新页面,代码将重置为原始代码,因此除非您的服务器端代码正在更新状态,否则您将回到第一方。并且重新加载后的代码不会运行/
  • ^^ 不要重新加载,把数据放好!
  • trans 根本没有在 url 中传递,或者它没有以更新的值传递?
  • trans 未通过更新值传递

标签: javascript jquery html ajax


【解决方案1】:

在重新加载页面后使用本地存储维护状态onoff。在您的本地尝试Failed to read the 'localStorage' property from 'Window' 这里。

$(document).ready(function() {
    function getTrans(){
      var trans = localStorage.getItem('trans');
        if(trans !=null){
          if(trans == 'on'){
            $('#trans_flag').text("off");
            localStorage.setItem('trans', 'off');
          }else{
            $('#trans_flag').text("on");
            localStorage.setItem('trans', 'on');
          }
        }else{
            trans = 'on';
            $('#trans_flag').text("on");
            localStorage.setItem('trans', 'on');
        }
        return trans;
    }
    $('#trans_flag').click(function() {
        var trans = getTrans();
        var base_url = 'base_url/';
        console.log(base_url + 'translation/language/searchUntranslated/'+trans);
    });
    getTrans();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a  id='trans_flag' name='trans_flag'></a>

【讨论】:

    【解决方案2】:

    去掉alert(trans)形成代码ajax请求

     $.ajax
                      ({
                          'type': 'POST',
                          'url': base_url + 'translation/language/searchUntranslated/'+trans,
                          'success': function(response){
                              window.location.reload();
                              //alert(trans);
                              console.log(response);
                          }
                      });
    

    【讨论】:

    • url中的trans值还没有更新。它只显示基于“on”值的动作。
    猜你喜欢
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多