如何更改 jQuery 面板 href?

How to change jQuery panel href?

我有一个面板 href 的记录。在不同的状态下,我希望按钮可以打开不同的面板。我试过更改 href,但这似乎还不够,因为按钮总是会打开原始面板。

a记录是这样定义的...

  <li><a href="#panel1" id="Xpanel" class="icon fa-crop">&nbsp;</a>

点击后,显示 panel1 并且效果很好...

我正在像这样更改 a 记录的 href ...

   var id = document.getElementById('Xpanel');
   $(id).attr('href', "#panel2");

在 Safari 调试器中,我可以看到一切都在改变,但按钮总是打开原来的 #panel1。

我需要以某种方式重新绑定记录 href 吗???

无需使用 document.getElementById() 获取您的元素,然后再次使用 jQuery。根据您的标记,下面的代码应该可以工作:

// Use jQuery's id selector
$("#Xpanel").attr('href', "#panel2");

如果上面的代码还不够,那么我会查看触发上面代码的事件。是否在用户点击 link 之前被调用?

看看jQuery's selector docs.

听起来您正在 Xpanel 上使用局部范围变量创建事件侦听器,即当时 Xpanelhref。如果您更新 href 事件侦听器在触发时不会使用更新的值;它使用创建侦听器时的原始值。

试试这个方法:

var id = $('#XPanel');
id.attr('href', "#panel2");