我想从菜单中选择另一个项目后刷新图像:
<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上,选择不同的菜单项后没有任何反应.我尝试了将当前时间戳附加到文件末尾的技巧.我也试过缓存标题 – 没有结果.
谢谢!
最佳答案 因此,问题似乎是嵌入类型type =“image / svg xml”Firefox似乎支持svgs和普通图像,如jpg,gif等,而其他浏览器则不支持.因此,使其适用于所有浏览器的一种方法是将类型更改为type =“image / jpeg”,只要该图像不是svg即可.如果您的所有图像都是svg类型,则使用type =“image / svg xml”.处理此问题的另一种方法是简单地跳过type属性或使用img标记.
我也有:
>删除了可选择的双重初始化
>删除.each(),因为您将最后选择的ID设置为嵌入源是不必要的
看一下below code,我使用的是type =“image / jpeg,它适用于Chrome / FF / Safri等.
$(function() {
$( "#selectable" ).selectable({
stop: function() {
$("#chart_image").attr({
"src": $( ".ui-selected", this )[0].id
});
}
})
.children().first().addClass('ui-selected');
});
#feedback { font-size: 1.4em; }
#selectable .ui-selecting { background: #FECA40; }
#selectable .ui-selected { background: #F39814; color: white; }
#selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
#selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<ol id="selectable">
<li class="ui-widget-content" id="https://upload.wikimedia.org/wikipedia/commons/thumb/6/65/Blue_morpho_butterfly.jpg/531px-Blue_morpho_butterfly.jpg">Item 1</li>
<li class="ui-widget-content" id="http://www.potentash.com/wp-content/uploads/2013/03/butterfly.jpg">Item 2</li>
<li class="ui-widget-content" id="http://smwv.org/wp-content/uploads/2013/11/blue-butterfly2.png">Item 3</li>
</ol>
<figure><embed id="chart_image" type="image/jpeg" src="http://smwv.org/wp-content/uploads/2013/11/blue-butterfly2.png" /></figure>