如何更改 jQuery 面板 href?
How to change jQuery panel href?
我有一个面板 href 的记录。在不同的状态下,我希望按钮可以打开不同的面板。我试过更改 href,但这似乎还不够,因为按钮总是会打开原始面板。
a记录是这样定义的...
<li><a href="#panel1" id="Xpanel" class="icon fa-crop"> </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 之前被调用?
听起来您正在 Xpanel
上使用局部范围变量创建事件侦听器,即当时 Xpanel
的 href
。如果您更新 href
事件侦听器在触发时不会使用更新的值;它使用创建侦听器时的原始值。
试试这个方法:
var id = $('#XPanel');
id.attr('href', "#panel2");
我有一个面板 href 的记录。在不同的状态下,我希望按钮可以打开不同的面板。我试过更改 href,但这似乎还不够,因为按钮总是会打开原始面板。
a记录是这样定义的...
<li><a href="#panel1" id="Xpanel" class="icon fa-crop"> </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 之前被调用?
听起来您正在 Xpanel
上使用局部范围变量创建事件侦听器,即当时 Xpanel
的 href
。如果您更新 href
事件侦听器在触发时不会使用更新的值;它使用创建侦听器时的原始值。
试试这个方法:
var id = $('#XPanel');
id.attr('href', "#panel2");