tôi có mã này:jQuery trẻ em một nhấp chuột href không hoạt động
<html>
<head>
<title>site</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#wlink a').click(function() {
$('.box:visible').fadeOut('fast', function() {
$('#' + (this.id).replace('link', '')).fadeIn('fast');
});
$('#wlink a').removeClass('selected');
$(this).addClass('selected');
});
$('#wlink div').click(function() {
var child = $(this).children();
child.click();
});
$('#linkbox1').addClass('selected');
$('#box1').fadeIn('fast');
});
</script>
</head>
<style>
a { outline: none; cursor: pointer; }
#wrapper { border:1px solid #cccccc; border:solid 1px #ddd; width:806px; height:255px; overflow: hidden; }
#wrapperBox { width:6000px; }
span.text { font-size:100px; color:#aaa; }
div.box { float:left; width:805px; height:255px; background:#efefef; display: none; }
#wlink div { width: 200px; text-align:center; display: block; float:left; border: solid 1px #ddd; }
a.selected { background: #eee; }
</style>
<body>
<div id="wrapper">
<div id="wrapperBox">
<div id="box1" class="box">
<span class="text">Box 1</span>
</div>
<div id="box2" class="box">
<span class="text">Box 2</span>
</div>
<div id="box3" class="box">
<span class="text">Box 3</span>
</div>
<div id="box4" class="box">
<span class="text">Box 4</span>
</div>
</div>
</div>
<div id="wlink">
<div><a id="linkbox1">Box 1</a></div>
<div><a id="linkbox2">Box 2</a></div>
<div><a id="linkbox3">Box 3</a></div>
<div><a id="linkbox4">Box 4</a></div>
</div>
</body>
</html>
Bây giờ những gì tôi muốn làm là khi DIV mẹ của A HREF được nhấp, tôi muốn để mô phỏng một nhấp chuột HREF. Nhưng nó không hoạt động, và tôi nhận được lỗi này:
too much recursion
[Break On This Error])});return}if(e.nodeType===3||e.nodeTy...nt=="undefined"&&(b=b.ownerDocument||
Điều gì sai với mã của tôi?
Cảm ơn, J
Tôi cho rằng anh ấy muốn dừngPropagation và ngăn chặnDefault, cách hiệu quả nhất để thực hiện việc này chỉ trả về sai. Hơn nữa, tôi đã trải qua các vấn đề tương thích trình duyệt cá nhân với hai chức năng đó, nhưng không bao giờ sử dụng trả về false. Tôi không đồng ý rằng việc sử dụng return false là thực hành tồi, ai đó quyết định nói thực hành tốt hơn trên blog của họ không cắt bất kỳ mù tạt nào với tôi. Nếu anh ta cần hành động mặc định nhưng không phải là bong bóng thì câu trả lời đúng sẽ là sử dụng e.stopPropagation. Tôi thích câu trả lời tao nhã hơn. – sillyMunky
Chỉ ra những điều này trong liên kết và cung cấp một thay thế là một cuộc gọi tốt, có thể OP chưa gặp họ trước đây. Nhưng tôi nghĩ rằng tuyên bố có một 'thực hành tốt nhất' cho điều này, đó là chặng đường dài không hữu ích lắm. – sillyMunky
Bạn cho rằng anh ấy muốn điều đó mà không nói rõ ràng, điều tôi nghĩ là sự bất hòa.Người mới cần hiểu * những gì * mã của họ đang làm và * tại sao * họ nên viết nó theo cách này hay cách khác. Nếu OP muốn 'trả về false' trong khi hiểu được ý nghĩa của nó, thì tốt. Một điều bất lợi là nói "chỉ trả về sai để ngăn chặn tuyên truyền" khi đó không phải là tất cả trở về sai và có thể có tác động tiêu cực khác. Tôi đang nói "Đây là mã làm những gì bạn hỏi, và đây là những gì trả về sai thực sự. Sử dụng một cách khôn ngoan." Thực sự, nó không phải là lớn của một thỏa thuận. –