Я впал в это. Я прочитал и протестировал все возможные решения, которые были даны ранее. Проверка пути сборки, сборка, перестройка, очистка, перезапуск IIS и VS2015, переустановка всех пакетов nuget, их компиляция один за другим и т. Д. ...
Я вдруг вспомнил, что VS хранит некоторые ASP-файлы в системе папок ... Я думаю, что я должен попробовать, в конце концов, это может стать хуже. Итак, я опустел:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
И все снова работает ... Странно, что эта проблема имеет такие разные возможные решения ...
Переписать его как-то более эффективно.
$('.carousel').each(function(){
var $carousel = $(this);
$carousel.find("li").each(function(index){
$(this).addClass('thumbnail'+index);
$(this).css('background-image', 'url(' + $carousel.find('.item:nth-child(index) img').attr('src') + ')');
});
});
Хранение вашей карусели в объеме ее each()
позволяет вам взаимодействовать с ней в объеме ваших li
each()
. Нет необходимости объявлять отдельную переменную i
, так как первый аргумент, переданный функции в вызове each()
, является индексом текущего элемента.
var that = this;
$(this).find("li").each(function(index){
var imgSrc = $(that).find('.item:nth-child(' + (index+1) + ') img').attr('src');
$(this).css('background-image', 'url(' + imgSrc + ')');
});
Я думаю, что это имеет больше смысла, чем то, что вы делаете. Функция jquery .each имеет Index в качестве первого аргумента, поэтому вы можете найти соответствующий элемент .ite с тем же индексом, если это то, что вам нужно
Когда вы используете функцию $ .each (), вы можете передать ей несколько аргументов. Например:
$(this).find("li").each(function(i, o){ });
Где i - индекс, а o - сам объект (в вашем случае, элемент li ). Итак, вы можете попробовать сделать это:
$(this).find("li.thumbnail" + i).css('background-image', 'url(' + $(this).find('.item:nth-child('+ (i - 1) + ') img').attr('src') + ')');