jquery-ui使用旧的jquery 1.8获取anchor href

时间:2017-01-09 12:32:16

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

如果我错过了答案,我已经环顾四周了。遇到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>

一切正常我想要做的是改变从href="/someurl"href="/someurl?params=something"

的任何给定选定li中的网址
   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
});

目前上述功能只是重新加载网址,在尝试获取网址的时候,我得到#ui-tabs-1而不是/someurl

在refreshListing上面有一些奇怪的东西在href中实际ID链接的值被转换,并且最终在它对该选项卡id加载之前我希望它访问新的url而不是在它的那一刻很难说究竟是什么驱使所有这些奇怪的事情

1 个答案:

答案 0 :(得分:0)

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

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

$('#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的大小(由于多个标签共享相同的常见事物的其他复杂性)所以它点击提交的提交功能 - 页面通过标签的搜索形式 - 这没有需要时重新加载实际标签....

无论如何很难表达一切,但上面修复了我需要它如何工作的行为 - 只有当它实际上有搜索它才会提交否则它会重新加载哪个应该对我的情况正确