我正在尝试制作简单的slideToggle标签,但不幸的是我在控制台中收到错误:
无法读取未定义
的属性'click'
我自己发现的是,如果我没有弄错的话,jQuery不会将click()视为一个函数。
我的HTML代码:
<div class="container">
<div id="mineUI" class="pull-right">
<div class="row">
<div id="mineUIbtn" class="col-md-4 text-center">
Home
<div id="UIcontent">blabla</div>
</div>
<div id="mineUIbtn" class="col-md-4 text-center">
Ok
<div id="UIcontent">blabla</div>
</div>
<div id="mineUIbtn" class="col-md-4 text-center">
Rem
<div id="UIcontent">blabla</div>
</div>
</div>
</div>
</div>
我的jQuery代码:
var mineUI = function() {
var UIcontent = $("div#mineUI > div.row > div#mineUIbtn > #UIcontent");
var mineUIbtn = $("div#mineUI > div.row > div#mineUIbtn");
UIcontent.each(function(){
$(this).slideUp("fast");
});
mineUIbtn.each(function(i){
var current_item = $(this)[i];
current_item.click(function(){
UIcontent.slideToggle("fast");
});
});
};
$(document).ready(mineUI);
感谢您的帮助!
答案 0 :(得分:1)
在.each()中,&#34;这个&#34;是单个元素,而不是集合。所以&#34;这个&#34;等于&#34; mineUIbtn [i]&#34;。错误消息是说它无法读取未定义对象的属性($(this)[i]未定义)。
使用更多代码进行编辑: 你真的不应该给同一个id多个东西。做一个&#34; mineUIbtn&#34; class和a&#34; UIcontent&#34;类。除非您已完成此操作,否则以下代码将无效。
var mineUI = function() {
$(".UIcontent").slideUp("fast");
$(".mineUIbtn").click(function(){
$(this).child().slideToggle("fast");
});
});
$(document).ready(mineUI);
&#34;这&#34;单击处理程序内部引用已单击的特定元素,而不仅仅是所有的mineUIbtn。 .child()返回其所有直接子节点。由于只有一个孩子并且它是UI内容,因此您可以继续并在其上调用.slideToggle()。