前端html引入的js文件无效,引入前端框架,原生js失效问题

现象

开发后台管理系统时遇到一个问题,后台管理系统是使用Hui+laravel+mysql实现的,很多表单等样式,都是用的Hui的自带样式。在用js代码控制checkbox勾选时,会勾选不上,通过浏览器开发工具查看样式,其实是已经加上去的,这是为什么呢?

Hui是一套轻量级web前端框架,官网地址是:http://www.h-ui.net/

问题解决的思路

因为是用js控制的,所以没有绑定鼠标的点击事件。我们通过对比以下两种动作的class变化:

1.手动鼠标勾选checkbox

2.js控制checkbox被勾选上

得出对比差,可以看下图:

3e5e0906e246

image.png

我手动勾选时,input的checkbox,会追加属性checked=”checked“,同时它的父节点div,也会追加一个名为“checked”的class。

3e5e0906e246

image.png

当我手动取消勾选时,就会删除这个class。

而js控制checkbox勾选时,父节点的div是不会追加这个“checked”class的。

事实上,它是已经被勾选上了,只是Hui的样式把原生html的input样式给覆盖,Hui在原生上包裹了一层样式,要控制这层样式。

解决方案

var checkBox = parent.document.getElementById("cartype_id_"+x);

//这样处理可以使用jquery的方法,控制勾选

$(checkBox).attr('checked',true);

//追加父节点的class

$(checkBox).parent().addClass("checked");

主要我的需求是个弹框,是需要获取弹框父节点的id,所以用parent.document,如果是在本节点,可以直接用jquery的方法。

我用原生js获取所需要更改的节点后,用$()可以强行调用jquery的方法,很方便。在此,我们追加父节点的class,就可以展示勾选了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值