Как показано ниже, когда я перетаскиваю мышь на Week
и я не могу прокрутить, чтобы увидеть окончательный <li>
в блоке HTML, и это может быть не так гладко. Я не знаю, что здесь не так, пожалуйста, взгляните на него и сообщите мне, как это изменить.
HTML:
<div class="yearly">2014
<div class="container">
<ul class="ca-menu"></ul>
</div>
</div>
Javascript:
$(document).ready(function () {
$(".yearly").mouseover(function () {
var num_month = 48;
var current_year = 2014;
for (i = num_month; i >= 1; i--) {
$(".ca-menu").after("<li class='weekly'><a href='/Lists/ChartIndex.aspx?Week=" + i + "&Year=" + current_year + "'>Week " + i + "</a></li>");
}
})
.mouseout(function () {
$(".weekly").hide();
});
});
Причина, по которой вы не можете прокручивать нижнюю часть, состоит в том, что, когда вы наводите курсор на <li>
, событие mouseover неоднократно вызывается. Попробуй это
$(document).ready(function(){
$(".yearly").hover(function () {
console.log('yahh');
var num_month = 48;
var current_year = 2014;
for (i = num_month; i >= 1; i--) {
$(".ca-menu").after("<li class='weekly'><a href='/Lists/ChartIndex.aspx?Week=" + i + "&Year=" + current_year + "'>Week " + i + "</a></li>");
}
},
function () {
$(".weekly").hide();
});
});
Это связано с тем, что вы продолжаете создавать <li>
когда ваша мышь перемещается.
сделайте свой <li>
список за пределами мыши над функцией. Затем просто покажите и спрячьте его с соответствующим событием мыши:
$(document).ready(function () {
var num_month = 48;
var current_year = 2014;
for (i = num_month; i >= 1; i--) {
$(".ca-menu").after("<li class='weekly'><a href='/Lists/ChartIndex.aspx?Week=" + i + "&Year=" + current_year + "'>Week " + i + "</a></li>");
}
$(".weekly").hide();
$(".yearly").mouseover(function () {
$(".weekly").show();
})
.mouseout(function () {
$(".weekly").hide();
});
});
Week
и прокручиваю вниз, а затем ... это не сработало.