Я хотел бы, чтобы обновить изображение после выбора другого пункта из меню:изображение не обновляется после изменения «SRC» атрибут
<html>
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(function() {
$("#selectable").selectable({
stop: function() {
$(".ui-selected", this).each(function() {
// Works on FF; doesn't work on Chrome and IE
d = new Date();
$("#chart_image").prop("src", this.id + "?" + d.getTime());
});
}
});
});
$(function() {
// Selects the first <li> element
$("#selectable").selectable().children().first().addClass('ui-selected');
});
</script>
</head>
<body>
<?php
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
$dirname = "charts/";
$images = glob($dirname."*.svg");
echo '<ol id="selectable">';
foreach($images as $image) {
echo '<li class="ui-widget-content" id="'.$image.'">'.basename($image, ".svg").'</li>';
}
echo '</ol>';
echo '<figure><embed id="chart_image" type="image/svg+xml" src="'.$images[0].'"></embed></figure>';
?>
</body>
</html>
Приведенный выше код хорошо работает на FF. Однако в Chrome и IE ничего не происходит после выбора разных пунктов меню. Я пробовал трюк с добавлением текущей метки времени в конец файла. Я также пробовал с заголовками кеша - никаких результатов.
Спасибо!
ли вы предоставить jsfiddle для этого? –
Пробовал переходить на '$ (" # chart_image "). Attr (" src ", this.id +"? "+ D.getTime());'? – Justinas
Насколько я понимаю, кэширование здесь не является проблемой, потому что кеширование выполняется для одного и того же URL-адреса, здесь меняется URL-адрес, поэтому кэширование не будет отображаться на картинке –