【问题标题】:jquery-ui tabs getting anchor href with older jquery 1.8jquery-ui 选项卡使用较旧的 jquery 1.8 获得锚点 href
【发布时间】:2017-05-23 17:21:51
【问题描述】:

我已经环顾四周,如果我错过了答案,我很抱歉。遇到this post。还有一些人现在在 SO 上流传,想知道是否有更简单的方法:

问题:

<ul>
<li><a id="test1" href="/someurl">click1</a></li>
<li><a href="/someurl2">click1</a></li>
<li><a href="/someurl3">click1</a></li>
</ul>

紧随其后

<ul id="ui-tabs-1" ></ul>
<ul id="ui-tabs-2" ></ul>

一切正常,我想做的是将任何给定选定 li 中的 url 从 href="/someurl" 更改为 href="/someurl?params=something"

   var href = $('#test1').attr('href')
    console.log('link is  '+href)
     //this returns correct link
$('#tabs').on('refreshListing',function(event,target) {
     $(this).tabs('load',$(this).tabs('option','selected'));

    var href = $('#test1').attr('href')
    console.log('link is  '+href)
    //this returns  #ui-tabs-1
});

目前上述函数只是重新加载 url,当尝试获取 li 的 url 时,我得到 #ui-tabs-1 而不是 /someurl

refreshListing 上面发生了一些奇怪的事情,href 中的实际 ID 链接的值被转换,最终在它加载该选项卡 id 之前,我希望它访问新的 url,而不是现在它很难说到底是什么导致了这些怪事

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-ui-tabs


    【解决方案1】:

    没关系解决它,问题比描述的要复杂一点。

    你有动态的标签,但上面还有一个搜索表单

    $('#tabSpecific').on('refreshListing',function(event,target) {
    //This was previously 
    //var obj = $('#search')
    //Now changed to - this to fix underlying (above issue)
      var obj = $('#search').find("input").not("input[type='hidden']").filter(function() {
                return this.value;
            });
    
      if (obj.length > 1) {
        obj.trigger('submit');
      } else {
        $(this).tabs('load',$(this).tabs('option','selected'));
      }
    })
    

    问题是它总是返回大于 1 的大小(由于多个选项卡共享相同的共同事物的其他复杂性)所以它击中了提交的提交功能 - 通过选项卡的搜索表单进行页面 - 然后没有需要时重新加载实际选项卡....

    无论如何很难表达这一切,但上述修复了我需要它如何工作的行为 - 只有当它实际进行搜索时才会提交,否则它将重新加载,这应该适合我的情况

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 2017-10-02
      • 2021-02-04
      • 2013-04-24
      相关资源
      最近更新 更多