2011-07-31 2 views
0

Привет переполнением стека,Включение Javascript в JQuery

Я новичок в изучении JQuery и просто пытается конденсироваться некоторые примеры кода вниз, как бы я идти о следующем.

При наведении на иконку #navweb выберите все элементы с классом .web, а затем измените фон каждого из этих элементов на url (back/"+ i +" .png), где i - цикл JS, и затем fadeIn эти новые фоны.

Вот JS я есть на ток, который работает (за FadeIn исключением)

function showweb() { 
for(var i=1; i < 45; i++){ 
var el = document.getElementById("im"+(i)); 
if(el && /web/.test((el ||{}).className)){ 
    el.style.backgroundImage = "url(back/"+ i +"col.png)";} 
} 
} 

function hideweb() { 
for(var i=1; i < 45; i++){ 
    var el = document.getElementById("im"+(i)); 
    if(el && /web/.test((el ||{}).className)){ 
     el.style.backgroundImage = "url(back/"+ i +".png)";} 
    } 
} 

я начал, и получил что-то вроде этого, но он не работает, еще потому что я знаю его не полная, может вы использовать счетчики в jQuery?

$('#navweb').mouseover(function(){ 

var i = 1; 
$(".web").each(function(){ 
$(this).css('background-image', 'url(back/" + i + ".col.png)'); 
i += 1; 
}); 

}); 

Большое спасибо всем ответам.

EDIT: Благодаря всем ответам, Guffa доказала свою идеальность и скромен для моего использования; Я также добавил метод fadeIn(), но, похоже, не срабатывает при наведении курсора мыши?

$('#navweb').mouseover(function(){ 

    $(".web").each(function(){ 
    var i = parseInt(this.id.substr(2)); 
    $(this).css('background-image', 'url(back/' + i + 'col.png)').fadeIn(1000); 
    }); 

}); 

ответ

1

Вы можете получить номер с идентификатором элемента:

$('#navweb').mouseover(function(){ 

    $(".web").each(function(){ 
    var i = parseInt(this.id.substr(2)); 
    $(this).css('background-image', 'url(back/' + i + '.col.png)'); 
    }); 

}); 
+0

работает отлично! Благодарю. и я бы просто дублировал это для мыши, чтобы изменить образы на «+ i +». png. это сделало бы jquery и JS практически одинаковой длины, есть ли польза от его использования? – ben

+0

@ben: Нет, в этом случае на самом деле нет никакой пользы. Существуют и другие случаи, когда код делает намного проще или где он обрабатывает специфические различия браузера. – Guffa

0

Вы имели небольшую ошибку здесь: 'url(back/" + i + ".col.png)', он должен быть, как я писал ниже одинарные кавычки.

$('#navweb').mouseover(function(){ 
    var i = 1; 
    $('.web').each(function(){ 
     $(this).css('background-image', 'url(back/' + i + '.col.png)'); 
     i += 1; 
    }); 
}); 
+0

Большое спасибо, что работает, но изображения он изменяет фон все перемешаны им угадать это происходит из-за сосчитать. изображения не пронумерованы 1, 2, 3, 4; их случайные, как 1,4,6,7. угадать им не повезло? – ben

+0

всегда мог хранить числа в массиве, если они фиксированы; если вам нужен пример - может предоставить один. В противном случае мы сможем более подробно рассказать о нумерации изображений. – f0x

+0

Да, числа всегда исправлены, как бы я начал инициализировать массив для jquery? спасибо – ben

Смежные вопросы