jquery-ui 选项卡使用较旧的 jquery 1.8 获得锚点 href

Posted

技术标签:

【中文标题】jquery-ui 选项卡使用较旧的 jquery 1.8 获得锚点 href【英文标题】:jquery-ui tabs getting anchor href with older jquery 1.8 【发布时间】: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,而不是现在它很难说到底是什么导致了这些怪事

【问题讨论】:

【参考方案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 的大小(由于多个选项卡共享相同的共同事物的其他复杂性)所以它击中了提交的提交功能 - 通过选项卡的搜索表单进行页面 - 然后没有需要时重新加载实际选项卡....

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

【讨论】:

以上是关于jquery-ui 选项卡使用较旧的 jquery 1.8 获得锚点 href的主要内容,如果未能解决你的问题,请参考以下文章

数据表无法通过 JQuery-UI 选项卡正确工作

最新的 Datepicker jquery-ui-1.10.0 问题

将较新的 Visual Studio 版本与较旧的 MFC 版本一起使用?

Jquery-ui Tabs Open dialog on tab click (stop code)

无法在Jquery UI垂直选项卡中执行验证

Eclipse 中的某些布局文件不会出现图形布局选项卡