网页可折叠DIV点击无响应,Fiddle运行正常部署后失效
问题原因及修复方案
1. 核心错误:jQuery 引入顺序颠倒
你的自定义jQuery脚本写在jQuery库引入之前,浏览器从上到下加载代码时,执行$('.expand-one').click()时jQuery还未加载完成,$属于未定义变量,事件绑定直接失败。
2. 次要错误:HTML 结构不规范
<td>是表格专属元素,必须嵌套在<table>、<tr>标签内,你直接将<td>放在<p>标签中,浏览器会自动修正DOM结构,提前闭合<p class="content-one">,导致选择器匹配的元素和预期不符。
3. 潜在干扰:空链接默认行为
触发区域内的空<a href="#">标签点击会触发默认锚点跳转,可能干扰事件执行。
修复后的代码示例
脚本部分(调整加载顺序,添加默认行为阻止)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> $('.expand-one').click(function(e) { e.preventDefault(); $('.content-one').slideToggle('slow'); }); </script>
HTML 部分(修正结构,移除冗余空a标签)
<p class="expand-one" style="cursor: pointer;"><img src="https://www.mywebsite.net/something/vip1.png"></p> <div class="content-one"> <table> <tr> <td width="33%" align="center" valign="top"> <br> </td> <td width="33%" align="center" valign="top"> <a href="http://www.mywebsite.net/bigslice" title="The Big Slice: Home of the Edge"> <font color="#dace77">[ m u s i c ]</font> </a><br> <font color="#FAF9B6">$ROOMNAME bigslice$</font><br>$USERLIST bigslice$<br> </td> </tr> </table> </div>
CSS 部分(调整选择器适配新的结构)
.content-one { display: none; }
内容的提问来源于stack exchange,提问作者Robert Ettinger
相关产品推荐
相关产品推荐

