我尝试重复使用互联网上的下拉替代品,但我遇到了两个问题:
1)我希望替换提交而不是创建href。我试图重写该函数并在-tag中添加onChange,但它不起作用。有人有提示吗?
2)我尝试添加标志并使用'<img class="option[selected]" />' +
扩展了函数,并添加了两个带有值的名称和图像的URL的css类,但由于我是一个Javascript新手我不能找到一个有效的解决方案。
这是整个功能:
$(document).ready(function() {
createDropDown();
$(".dropdown dt a").click(function() {
$(".dropdown dd ul").toggle();
});
$(document).bind('click', function(e) {
var $clicked = $(e.target);
if (! $clicked.parents().hasClass("dropdown"))
$(".dropdown dd ul").hide();
});
$(".dropdown dd ul li a").click(function() {
var text = $(this).html();
$(".dropdown dt a").html(text);
$(".dropdown dd ul").hide();
var langForm_mylang = $("#langForm_mylang");
langForm_mylang.val($(this).find("span.value").html())
});
});
function createDropDown(){
var langForm_mylang = $("#langForm_mylang");
var selected = langForm_mylang.find("option[selected]");
var options = $("option", langForm_mylang);
$("#langFormReplacement").append('<dl id="target" class="dropdown"></dl>')
$("#target").append('<dt><a href="#">' + selected.text() +
'<img class="$langCode" />' +
'<span class="value">' + selected.val() +
'</span></a></dt>')
$("#target").append('<dd><ul></ul></dd>')
options.each(function(){
$("#target dd ul").append('<li><a href="#">' +
$(this).text() + '<span class="value">' +
$(this).val() + '</span></a></li>');
});
}