jQuery:I';我正在尝试将单击操作绑定到具有相同类的多个元素 $(文档).ready(函数(){ $(“.slider\u link”)。每个(函数(i,元素){ 元素单击(函数(){ $(“div#“+elem.attr(“tag”)).slideUp(300); }); }); });
但在第一次(用alert检查)后,它会中断,说index.html没有方法单击。。。怎么了 html:jQuery:I';我正在尝试将单击操作绑定到具有相同类的多个元素 $(文档).ready(函数(){ $(“.slider\u link”)。每个(函数(i,元素){ 元素单击(函数(){ $(“div#“+elem.attr(“tag”)).slideUp(300); }); }); });,jquery,Jquery,但在第一次(用alert检查)后,它会中断,说index.html没有方法单击。。。怎么了 html: 问题在于elem是当前的DOM元素,而不是具有 <li><a href="#" tag="home" class="slider_link">Home</a></li> <li><a href="#" tag="calendar" class="slider_link">Calend
问题在于elem
是当前的DOM元素,而不是具有
<li><a href="#" tag="home" class="slider_link">Home</a></li>
<li><a href="#" tag="calendar" class="slider_link">Calendar</a></li>
<li><a href="#" tag="officers" class="slider_link">Officers</a></li>
<li><a href="#" tag="media" class="slider_link">Media</a></li>
$(function() {
$(".slider_link").click(function(){
$("#"+$(this).attr("tag")).slideUp(300);
});
});
<li><a href="#home" class="slider_link">Home</a></li>
<li><a href="#calendar" class="slider_link">Calendar</a></li>
<li><a href="#officers" class="slider_link">Officers</a></li>
<li><a href="#media" class="slider_link">Media</a></li>
或者更简短,只需将所有属性绑定为相同,并在单击任何一个时获取属性:
$(document).ready(function() {
$(".slider_link").each(function(i, elem){
$(elem).click(function(){
$("div#"+$(elem).attr("tag")).slideUp(300);
});
});
});
一个更好的解决方案是使其更简单,并在禁用JS的情况下工作,更改标记如下:
<li><a href="#" tag="home" class="slider_link">Home</a></li>
<li><a href="#" tag="calendar" class="slider_link">Calendar</a></li>
<li><a href="#" tag="officers" class="slider_link">Officers</a></li>
<li><a href="#" tag="media" class="slider_link">Media</a></li>
$(function() {
$(".slider_link").click(function(){
$("#"+$(this).attr("tag")).slideUp(300);
});
});
<li><a href="#home" class="slider_link">Home</a></li>
<li><a href="#calendar" class="slider_link">Calendar</a></li>
<li><a href="#officers" class="slider_link">Officers</a></li>
<li><a href="#media" class="slider_link">Media</a></li>
即使禁用了JS,当您单击相应的链接时,它也会将页面滚动到
,等等。问题是elem
是当前的DOM元素,而不是一个具有
<li><a href="#" tag="home" class="slider_link">Home</a></li>
<li><a href="#" tag="calendar" class="slider_link">Calendar</a></li>
<li><a href="#" tag="officers" class="slider_link">Officers</a></li>
<li><a href="#" tag="media" class="slider_link">Media</a></li>
$(function() {
$(".slider_link").click(function(){
$("#"+$(this).attr("tag")).slideUp(300);
});
});
<li><a href="#home" class="slider_link">Home</a></li>
<li><a href="#calendar" class="slider_link">Calendar</a></li>
<li><a href="#officers" class="slider_link">Officers</a></li>
<li><a href="#media" class="slider_link">Media</a></li>
或者更简短,只需将所有属性绑定为相同,并在单击任何一个时获取属性:
$(document).ready(function() {
$(".slider_link").each(function(i, elem){
$(elem).click(function(){
$("div#"+$(elem).attr("tag")).slideUp(300);
});
});
});
一个更好的解决方案是使其更简单,并在禁用JS的情况下工作,更改标记如下:
<li><a href="#" tag="home" class="slider_link">Home</a></li>
<li><a href="#" tag="calendar" class="slider_link">Calendar</a></li>
<li><a href="#" tag="officers" class="slider_link">Officers</a></li>
<li><a href="#" tag="media" class="slider_link">Media</a></li>
$(function() {
$(".slider_link").click(function(){
$("#"+$(this).attr("tag")).slideUp(300);
});
});
<li><a href="#home" class="slider_link">Home</a></li>
<li><a href="#calendar" class="slider_link">Calendar</a></li>
<li><a href="#officers" class="slider_link">Officers</a></li>
<li><a href="#media" class="slider_link">Media</a></li>
即使禁用了JS,当您单击相应的链接时,它也会将页面滚动到
,等等