这是因为下拉组件假定只有一个实例并通过类名绑定到它。
通过对脚本进行一些更改,您可以使多个实例正常工作。更改摘要如下。
演示:http: //jsfiddle.net/fZbx6/1/
我在评论中强调了这些变化。
$(document).ready(function() {
$(".dropdown img.flag").addClass("flagvisibility");
$(".dropdown dt a").click(function() {
// old
//$(".dropdown dd ul").toggle();
// new
$(this).parents(".dropdown").find("dd ul").toggle();
});
$(".dropdown dd ul li a").click(function() {
var text = $(this).html();
// old
//$(".dropdown dt a span").html(text);
//$(".dropdown dd ul").hide();
// NEW
var dd = $(this).parents(".dropdown");
dd.find("dt a span").html(text);
dd.find("dd ul").hide();
$("#result").html("Selected value is: " + getSelectedValue("sample"));
});
function getSelectedValue(id) {
return $("#" + id).find("dt a span.value").html();
}
$(document).bind('click', function(e) {
var $clicked = $(e.target);
if (! $clicked.parents().hasClass("dropdown"))
$(".dropdown dd ul").hide();
});
$("#flagSwitcher").click(function() {
$(".dropdown img.flag").toggleClass("flagvisibility");
});
});