Гигиенические имена в макросах C:
#define SOME_MACRO(_x) do { \ int *x = (_x); \ ... \ } while(0)
Определение x таким образом внутри макроса опасно, поскольку (_x) может также расширяться до x, заканчиваясь на:
do { int *x = x; ... } while(0)
, который может не получить никакого предупреждения от вашего компилятора, но фактически инициализировать ваш указатель x мусором (а не затененным x из внешней области видимости).
Важно использовать имена, которые, как вы знаете, уникальны для этого макроса. Препроцессор C не имеет механизма для автоматизации этого, поэтому вам просто нужно выбрать некрасивые имена для ваших макроопределенных переменных или просто избегать их для этих целей.
Я не уверен, что вам нужен плагин для решения этой проблемы:
$(document).ready(function() {
$("#image").change(function() {
var src = $(this).val();
$("#imagePreview").html(src ? "<img src='" + src + "'>" : "");
});
});
Я не думаю, что для этого есть плагин, но это довольно тривиально сделать "вручную"
$(document).ready(function(){
$('#image').change(function(){
$('#imagePreview').html('<img src="'+$('#image').val()+'"/>');
});
});
. добавить проверку для несуществующих изображений и т. д. Ваш пробег может отличаться. и т. д.
Вам действительно нужен плагин?
Будет ли работать что-то простое, как показано ниже?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>JQuery Image</title>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#image").change(function() {
$("#imagePreview").empty();
if ( $("#image").val()!="" ){
$("#imagePreview").append("<img src=\"" + $("#image").val() + "\" />");
}
else{
$("#imagePreview").append("displays image here");
}
});
});
</script>
</head>
<body>
<select name="image" id="image" class="inputbox" size="1">
<option value=""> - Select Image - </option>
<option value="image1.jpg">image1.jpg</option>
<option value="image2.jpg">image2.jpg</option>
<option value="image3.jpg">image3.jpg</option>
</select>
<div id="imagePreview">
displays image here
</div>
</body>
</html>