在我的站点地图中,我在表格单元格中有几个锚点......
<table class="table_site">
<tr>
<td class="subsite"><a class="l1" href="#">link1</a></td>
<td class="subsite"><a class="l2" href="#">link2</a></td>
<td class="subsite"><a class="l3" href="#">link3</a></td>
<td class="subsite"><a class="l4" href="#">link4</a></td>
</tr>
</table>
我有一个jquery脚本来调用任何单击的函数切换锚。
<script type="text/javascript">
$('a.l1').bind('click', function () {
//code here
});
</script>
它根本不起作用
如何调用特定的锚?
谢谢
答案 0 :(得分:1)
根据您放置javascript的位置,它可能在创建DOM之前运行。只有在调用方法时,绑定才会对DOM中存在的元素有效。你需要在$(文件).ready(function(){})内进行调用;呼叫。这将确保仅在所有DOM都已加载时才发生绑定。
另一个建议是你不使用bind。正如我所提到的,它不会将自身绑定到调用方法后创建的项目。最好使用live()(pre-jQuery1.7)或on()(post-jquery 1.7)。以下是使用的示例:
$(function () { $(".table_site").on("click", "a.l1", function(e) { ... do stuff ...});});
答案 1 :(得分:1)
它的发生因为DOM(文档对象模型)还没有准备好。试试这个片段
$(document).ready(function(){
$('a.l1').click(function(){
//code logic goes here
});
});
如果动态生成锚标记,即通过javascript操作DOM,则使用.on()
代替.click()
方法
另请注意,如果您使用早于1.7的jQuery版本,则使用.delegate()
而不是.on()
后者的函数仅适用于jQuery 1.7 +