我有以下
HTML:
<table class="products"> <tr> <td>Product description probably goes here</td> <td><a href="#">more information</a></td> </tr> </table>
为了让支持Javascript的浏览器更加性感,我添加了这个jQuery(1.3.2):
$(document).ready(function(){ $('table.products tr').click(function(){ $(this).find('a').click(); return false; }); });
但我认为它会进入一个无限循环或其他东西. Safari显示了这个:
RangeError: Maximum call stack size
exceeded. jquery.min.js:12
任何人都可以提供解决方法或更好的方法吗?
解决方法
这里的问题是tr内的谎言.因此,当触发click()方法时,事件会冒泡到包含它的tr,从而创建您提到的递归循环.而不是调用.find(‘a’).click(),让a和tr都使用相同的click方法.
$('tr,a').click(function(){ //dostuff return false; });