Jquery 在选择菜单上失去焦点时触发事件
我有一个表,其中有一堆行,我希望在单击时用选择菜单替换单元格的内容。我想到的是以下几点: 上面的代码几乎可以工作,但由于某些原因,如果未按下鼠标按钮,选择菜单将关闭 现在,当选择菜单失去焦点时,我希望触发一个事件,用原始文本替换选择菜单。我一直在玩blur(),但还没有让它工作。当选择菜单更改时,我希望触发一个事件,在该事件中我可以保存数据,并再次将选择菜单替换为所选选项。1) 要解决您的第一个问题,您需要记住,您正在使用Jquery 在选择菜单上失去焦点时触发事件,jquery,Jquery,我有一个表,其中有一堆行,我希望在单击时用选择菜单替换单元格的内容。我想到的是以下几点: 上面的代码几乎可以工作,但由于某些原因,如果未按下鼠标按钮,选择菜单将关闭 现在,当选择菜单失去焦点时,我希望触发一个事件,用原始文本替换选择菜单。我一直在玩blur(),但还没有让它工作。当选择菜单更改时,我希望触发一个事件,在该事件中我可以保存数据,并再次将选择菜单替换为所选选项。1) 要解决您的第一个问题,您需要记住,您正在使用单击事件将选择附加到元素!因此,每次您在上单击选择,您都会触发上的单击。
单击
事件将选择
附加到元素!因此,每次您在上单击选择,您都会触发上的单击。编辑。。。浏览器只是不停地移动,这就是为什么在选择过程中,您必须保持鼠标向下移动的原因
要修复它,只需添加一个span
并将单击绑定到span,将select
附加到。编辑:
看看这个例子
相关HTML
<tbody>
<tr><td>xxx</td><td class="edit"><span>yyy</span></td></tr>
<tr><td>xxx</td><td class="edit"><span>yyy</span></td></tr>
<tr><td>xxx</td><td class="edit"><span>yyy</span></td></tr>
</tbody>
2)
要将所选选项文本放置在.edit
上,您只需将事件处理程序绑定到更改
,并从所选选项
收集HTML
:
看看这个例子
jQuery
$('.edit').on("change", "select", function() {
var $t2 = $(this),
val = $(this).find(':selected').html();
$t2.parent().html(val);
});
$('.edit').on("change", "select", function() {
var $t2 = $(this),
$span = $('<span>'),
val = $span.html($(this).find(':selected').html());
$t2.parent().html(val);
});
3)
要使步骤01 e 02循环,需要将所选选项
中的值包装到span
中,以在用户单击文本时保持单击
事件触发:
看看这个例子
jQuery
$('.edit').on("change", "select", function() {
var $t2 = $(this),
val = $(this).find(':selected').html();
$t2.parent().html(val);
});
$('.edit').on("change", "select", function() {
var $t2 = $(this),
$span = $('<span>'),
val = $span.html($(this).find(':selected').html());
$t2.parent().html(val);
});
$('.edit')。在(“更改”、“选择”、函数()上){
变量$t2=$(此),
$span=$(''),
val=$span.html($(this.find(':selected').html());
$t2.parent().html(val);
});
1)
要解决您的第一个问题,您需要记住,您正在使用单击
事件将选择
附加到元素!因此,每次您在上单击选择,您都会触发上的单击。编辑。。。浏览器只是不停地移动,这就是为什么在选择过程中,您必须保持鼠标向下移动的原因
要修复它,只需添加一个span
并将单击绑定到span,将select
附加到。编辑:
看看这个例子
相关HTML
<tbody>
<tr><td>xxx</td><td class="edit"><span>yyy</span></td></tr>
<tr><td>xxx</td><td class="edit"><span>yyy</span></td></tr>
<tr><td>xxx</td><td class="edit"><span>yyy</span></td></tr>
</tbody>
2)
要将所选选项文本放置在.edit
上,您只需将事件处理程序绑定到更改
,并从所选选项
收集HTML
:
看看这个例子
jQuery
$('.edit').on("change", "select", function() {
var $t2 = $(this),
val = $(this).find(':selected').html();
$t2.parent().html(val);
});
$('.edit').on("change", "select", function() {
var $t2 = $(this),
$span = $('<span>'),
val = $span.html($(this).find(':selected').html());
$t2.parent().html(val);
});
3)
要使步骤01 e 02循环,需要将所选选项
中的值包装到span
中,以在用户单击文本时保持单击
事件触发:
看看这个例子
jQuery
$('.edit').on("change", "select", function() {
var $t2 = $(this),
val = $(this).find(':selected').html();
$t2.parent().html(val);
});
$('.edit').on("change", "select", function() {
var $t2 = $(this),
$span = $('<span>'),
val = $span.html($(this).find(':selected').html());
$t2.parent().html(val);
});
$('.edit')。在(“更改”、“选择”、函数()上){
变量$t2=$(此),
$span=$(''),
val=$span.html($(this.find(':selected').html());
$t2.parent().html(val);
});
回答得很好!我们说话的时候,我正在经历它。非常感谢您对span的巧妙使用。这是循环点击让我难堪!唯一的其他部分是,如果有人点击了选择,它需要恢复到原来的。非常好的答案!我们说话的时候,我正在经历它。非常感谢您对span的巧妙使用。这是循环点击让我难堪!唯一的其他部分是,如果有人单击“选择”按钮,则需要将其恢复为原始状态。