我正在使用jqueryui自动完成,并且已经设置了一个使用ContentFlow的图片库搜索,当找到图像时,会显示一个小图标,用户可以用lightbox打开图像(漂亮的照片)
代码如下:
$(function() {
var projects = [
{
value: "Alcatraz",
label: "Alcatraz",
icon: "Alcatraz.jpg",
url: "slides/Alcatraz.jpg",
desc: "",
imgN: "1"
},
{
value: "Amber Light",
label: "Amber Light",
icon: "Amber Light.jpg",
url: "slides/Amber%20Light.jpg",
desc: "",
imgN: "2"
},
{
value: "Blue Boat",
label: "Blue Boat",
icon: "Blue Boat.jpg",
url: "slides/Blue%20Boat.jpg",
desc: "",
imgN: "3"
}
];
$( "#project" ).autocomplete({
minLength: 0,
source: projects,
focus: function( event, ui ) {
$( "#project" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$( "#project" ).val( ui.item.label );
$( "#project-id" ).val( ui.item.value );
$( "#project-icon" ).attr( "src", "thumbs/" + ui.item.icon );
$( "#project-description" ).html( ui.item.desc );
$( "#project-label" ).html( ui.item.label );
$( "#project-link" ).attr("href", ui.item.url );
$( "#project-link" ).attr("title", ui.item.label );
return false;
},
close: function() {
var value = $( "#project" ).val( ui.item.imgN );
cf.moveTo(value);
}
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + " - " + item.desc + "</a>" )
.appendTo( ul );
};
});HTML:
<div id="project-label">Search</div>
<a href="#" rel="prettyPhoto" class="" id="project-link"><img id="project-icon" src="res/transparent_1x1.png"/></a>
<input id="project"/>
<input type="hidden" id="project-id"/>
<p id="project-label"></p>
<p id="project-description"></p>我遇到的问题是以下函数的问题:
close: function() {
var value = $( "#project" ).val( ui.item.imgN );
cf.moveTo(value);
}我需要图片库使用滚动到contentflow中的特定图像
cf.moveTo();我没有让我的代码返回这个值。任何帮助都将不胜感激。
发布于 2011-12-19 23:17:21
经过试验和磨难,我找到了一种方法,让它与这个额外修改的代码一起工作:
select: function( event, ui ) {
$( "#project-imgN" ).val( ui.item.imgN );
return false;
},
close: function(event, ui ) {
function runEffect() {
// get effect type from
var move = $( "#project-imgN" ).val();
// run the effect
cf.moveTo(move);
};
runEffect();
}
})发布于 2011-12-19 04:54:21
当您使用val()时,您不应该输入用于设置值的参数,您只需要在您想要其值的元素上调用val()。
尝试:
var value = $( "#project "+ui+"."+item+"."+imgN).val();或者类似的东西。
https://stackoverflow.com/questions/8554711
复制相似问题