Jquery - 子 div 上的事件侦听器以更改父 div 的 css 属性

Posted

技术标签:

【中文标题】Jquery - 子 div 上的事件侦听器以更改父 div 的 css 属性【英文标题】:Jquery - Event Listener on child div to change css property of parent div 【发布时间】:2017-03-07 10:10:21 【问题描述】:

我正在构建一个产品定制表单,单选按钮以 opacity:0 隐藏。

我希望图像的边框变黑,以向用户反馈选择了该选项。我已将事件侦听器添加到单选按钮,以便在获得焦点时,它会更改父 div 的 css 属性作为对用户的反馈。 它在 chrome 和 jsfiddle 中完美运行,但不适用于移动或 safari 浏览器。

为什么会发生这种情况以及解决方法是什么。

这是 jsfiddle https://jsfiddle.net/gLwjhqtd/

 $('.radioButtons')
    .focus(function() 
      $(this).parent().css('border','2px solid black');
    )
    .blur(function() 
      $(this).parent().css('border','none');
    )  

谢谢!

【问题讨论】:

这可能与focusblur 事件有关。我不确定它们在移动浏览器上的工作方式是否符合您的预期(在radio 按钮的上下文中)。您可以在change 上设置一个侦听器,如果设置了收音机,则显示边框,否则将其删除。 【参考方案1】:

不要使用模糊或焦点,因为在移动设备中它们不会发生。 你可以试试这个

$('.radioButtons').change(function(event)
    $('.radioButtons').parent().css('border','0');
    if($(event.target).is(':checked'))
  
    $(event.target).parent().css('border','2px solid black');
  

)

【讨论】:

以上是关于Jquery - 子 div 上的事件侦听器以更改父 div 的 css 属性的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - Jquery - 插件

交换2个html元素并在其上保留事件侦听器

我可以更改 PayPal 按钮上的事件侦听器以激活复活节彩蛋,然后稍后将其恢复为原始状态吗?

父级上的jQuery单击事件,但找到子(单击)元素

jquery停止子触发父事件

jQuery 事件:检测对 div 的 html/文本的更改