基于子元素输入控制父元素:focus
Controlling parent element based on child input:focus
我有一个<div>
元素包含一个<form>
元素和一个<input>
字段。这个div还包含一个<button>
,通过overflow:hidden隐藏。
插图
当用户点击输入字段时,它的高度将改变,溢出:隐藏将变成溢出:可见。我可以通过输入实现的第一个效果是:专注,但第二个目标是针对父母,我有问题。我知道选择器不能在CSS3中提升,所以我尝试使用jQuery has()函数,但它似乎不起作用(可能完全是我的错)。
这是我尝试过的:
<script>
$("div:has(input:focus)").addClass("visible");
</script>
我做错了吗?我该怎么做才能达到预期的效果?
try this:
$("input").focus(function(){
$(this).parents('div').css({"overflow":"visible" });
});
你可以尝试使用jQuery parent()
var input = $('input');
input.on('focus', function(e) {
var form = input.parent();
var div = form.parent()[0];
// Do your css customization here
});
你也可以尝试使用closest()
方法
var input = $('input');
input.on('focus', function(e) {
var div = input.closest('div');
// Do your css customization here
});
我个人更喜欢closest()
方法,但知道另一种方法也很好。
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 在iPad上,如何通过Javascript事件在选择元素上设置focus()而不显示选项
- 似乎无法获得'.focus()'元素工作.
- angular 2中另一个元素的“blur”之后不能“focus”
- 收到错误消息:“未捕获的类型错误:无法读取 null 的属性'焦点'”时尝试调用 focus() 到元素
- 如何在元素上设置默认 focus()
- ng-focus和ng-blur不起作用,而ng-click在输入元素中工作正常
- 由jQuery$.get(..)加载的Focus元素
- Aurelia-dialog在自定义元素上使用attach-focus
- 如果用户键入任何内容,如何使用jquery .focus()元素
- .focus()不能动态处理jQuery创建的元素
- .focus()不关注新元素
- HTML5必需元素,open collapse and focus required元素为空
- 使用JavaScript更改元素的:focus属性
- 不能让.focus在动态创建的输入元素上工作
- 基于子元素输入控制父元素:focus