动态显示和隐藏选择菜单
jQuery: Dynamically show and hide select menu
我希望用户在点击一个单词时能够做出一个新的选择。我已经编写了一个几乎完美的代码:
http://jsfiddle.net/24rjN/HTML:<p>Your current town of stay:</p>
<p id="profile_town_selected">Vienna</p>
<select id="profile_town_dropdown" style="display:none">
<option selected="true" style="display:none;">select town</option>
<option>Barcelona</option>
<option>London</option>
<option>Berlin</option>
</select>
JS:
function showOptions(old_selection, dropdown) {
old_selection.hide();
dropdown.show();
dropdown.on('change', function() {
var new_selection = $(this).val();
$(this).hide();
old_selection.text(new_selection).show();
});
}
$('#profile_town_selected').on('click', function() {
var old_selection = $(this);
var dropdown = $('#profile_town_dropdown');
showOptions(old_selection, dropdown);
});
我的问题:当用户决定坚持当前选择时,选择菜单不会消失。例如,当用户点击Vienna时,选择菜单就会出现。如果他再次点击Vienna,选择菜单不会消失。只有当他选择一个不同于当前选择的城镇时,它才会消失。我需要如何修改代码,以实现选择菜单也消失时,用户自发地决定不选择另一个城镇?
JS:
dropdown = $('#profile_town_dropdown');
clickCount = 0;
previousValue = '';
dropdown.on('click', function (event) {
if (clickCount == 0) {
clickCount++;
return;
} else {
if ($(this).val() == previousValue) {
$(this).hide();
var new_selection = $(this).val();
old_selection.text(new_selection).show();
clickCount = 0;
}
}
console.log(event);
});
dropdown.on('change', function () {
var new_selection = $(this).val();
$(this).hide();
previousValue = new_selection;
old_selection.text(new_selection).show();
}).focus();
$('#profile_town_selected').on('click', function () {
old_selection = $(this);
old_selection.hide();
dropdown.show();
});
$('#profile_town_dropdown').on('blur', function () {
old_selection.show();
$(this).hide();
});
http://jsfiddle.net/robschmuecker/24rjN/1/将dropdown.on('change', function()
改为dropdown.on('blur', function()
试试这个:
function showOptions(old_selection, dropdown) {
old_selection.hide();
dropdown.show();
dropdown.on('blur', function() {
var new_selection = $(this).val();
$(this).hide();
old_selection.text(new_selection).show();
});
}
$('#profile_town_selected').on('click', function() {
var old_selection = $(this);
var dropdown = $('#profile_town_dropdown');
showOptions(old_selection, dropdown);
});
相关文章:
- 基于其他下拉菜单选择隐藏/显示下拉菜单
- 使用vue路由器,我如何才能使菜单选择的样式
- Asp.net 引导下拉菜单 - 选择一个项目
- 检测引导下拉菜单选择的正确方法是什么
- 当上一个下拉菜单选择了某些内容时,javascript显示下拉菜单
- 转换UL->li inot为同位素过滤菜单选择的列表
- Jquery:在下拉菜单选择上调用函数
- Javascript菜单选择
- 如何根据下拉菜单选择隐藏/显示文本框
- 使用.on的多个下拉菜单选择文本仅适用于第一个下拉菜单
- 如何基于两个下拉菜单选择进行页面重定向
- WordPress 类别下拉菜单选择链接断开
- Jquery - 根据下拉菜单选择加载 XML 文件
- 使用下拉菜单选择不同的语言并翻译 RoR 3.2 Ruby 2.0
- 将下拉菜单选择保存在 Cookie 中
- JavaScript 披萨菜单选择列表
- 如何生成下拉菜单选择以根据数据库中可用的行/记录表单数据填充表单
- 尝试在鼠标悬停时为Wordpress中的下拉菜单选择添加突出显示
- 使后台生成的下拉菜单选择成为强制性的
- 求和2个跨度元素中的两个值(用户可以通过下拉菜单选择每个跨度元素的值)