这是我的第一部分代码:
$('ul li').click(function(){ //when an <li> is clicked
$('ul .clicked').removeClass('clicked'); // remove .clicked class from any other <li>'s inside a <ul>
$(this).addClass('clicked'); // add .clicked class to the clicked <li> ($(this))
screen = $(this).attr('id'); // screen = the clicked elements' id
screen = "#" + screen; // screen = the clicked elements' id with a # infront of it
$(screen).screenSlide(); // is basically = $('#elementsID').screenSlide();, correct?
});
这很奇怪,因为在我编写的前一个函数中,除了最后一步之外,我做了完全相同的事情,而不是将 screen 作为选择器传递,我将 screen 推入一个 Array 中,然后我抓住了 array[0] (这是 #elementsID 没有任何引号)并将其用作选择器并且它起作用了。但向前看,screenSlide 是
function screenSlide(){ // $(this) should = an <li> who's id is screen
var test = $(this).attr('class');
alert(test);
$(this).addClass('current'); // add the .current class to $(this), which should be an <li>
$(this).slideDown();
};
现在,警报测试没有发出任何警报,所以我猜测将屏幕作为 CSS 选择器传递是行不通的。可以看到,screenSlide 函数应该是给 $(this)<li> 添加一个类,然后让它向上滑动。
知道出了什么问题吗?