Мы могли бы сделать небольшую магию split
/ pop
, как показано здесь ( https://stackoverflow.com/a/424006/1250044 ), чтобы извлечь имя файла (в соответствии с окнами и POSIX).
def getFileNameWithoutExtension(path):
return path.split('\\').pop().split('/').pop().rsplit('.', 1)[0]
getFileNameWithoutExtension('/path/to/file-0.0.1.ext')
# => file-0.0.1
getFileNameWithoutExtension('\\path\\to\\file-0.0.1.ext')
# => file-0.0.1
Итак, после долгой путаницы и поиска я понял это - чтобы получить доступ к держателю из вложенной функции, мне пришлось создать для него держатель:
$('.holder').each(function(){
var holder = $(this);
var imgsrc = 'http://example.com/imgsrc';
var $img = $('<img />', {src: imgsrc});
$($img).load(function () {
$(this).hide();
holder.removeClass('loading');
holder.append(this);
$(this).fadeIn();
});
});
Для начала, вы не указываете здесь URL:
var imgsrc = http://example.com/imgsrc;
должно быть:
var imgsrc = 'http://example.com/imgsrc';
Попробуйте следующее:
$('.holder').each(function(){
var imgsrc = 'http://example.com/imgsrc';
var $img = $('<img />', {src: imgsrc});
$($img).load(function () {
$(this).hide();
$(this).parent('.holder').removeClass('loading');
$(this).parent().append(this);
$(this).fadeIn();
});
});
Я думаю, проблема заключалась в том, что событие загрузки было привязано к изображению без любой атрибут src
(я могу ошибаться, дайте мне знать, как это происходит :)