引入前端框架,原生js失效問題

現(xiàn)象

開發(fā)后臺(tái)管理系統(tǒng)時(shí)遇到一個(gè)問題,后臺(tái)管理系統(tǒng)是使用Hui+laravel+mysql實(shí)現(xiàn)的,很多表單等樣式,都是用的Hui的自帶樣式。在用js代碼控制checkbox勾選時(shí),會(huì)勾選不上,通過瀏覽器開發(fā)工具查看樣式,其實(shí)是已經(jīng)加上去的,這是為什么呢?

Hui是一套輕量級web前端框架,官網(wǎng)地址是:http://www.h-ui.net/

問題解決的思路

因?yàn)槭怯胘s控制的,所以沒有綁定鼠標(biāo)的點(diǎn)擊事件。我們通過對比以下兩種動(dòng)作的class變化:
1.手動(dòng)鼠標(biāo)勾選checkbox
2.js控制checkbox被勾選上
得出對比差,可以看下圖:

image.png

我手動(dòng)勾選時(shí),input的checkbox,會(huì)追加屬性checked=”checked“,同時(shí)它的父節(jié)點(diǎn)div,也會(huì)追加一個(gè)名為“checked”的class。

image.png

當(dāng)我手動(dòng)取消勾選時(shí),就會(huì)刪除這個(gè)class。

而js控制checkbox勾選時(shí),父節(jié)點(diǎn)的div是不會(huì)追加這個(gè)“checked”class的。
事實(shí)上,它是已經(jīng)被勾選上了,只是Hui的樣式把原生html的input樣式給覆蓋,Hui在原生上包裹了一層樣式,要控制這層樣式。

解決方案

var checkBox = parent.document.getElementById("cartype_id_"+x);
//這樣處理可以使用jquery的方法,控制勾選
$(checkBox).attr('checked',true);
//追加父節(jié)點(diǎn)的class
$(checkBox).parent().addClass("checked");

主要我的需求是個(gè)彈框,是需要獲取彈框父節(jié)點(diǎn)的id,所以用parent.document,如果是在本節(jié)點(diǎn),可以直接用jquery的方法。

我用原生js獲取所需要更改的節(jié)點(diǎn)后,用$()可以強(qiáng)行調(diào)用jquery的方法,很方便。在此,我們追加父節(jié)點(diǎn)的class,就可以展示勾選了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一:在制作一個(gè)Web應(yīng)用或Web站點(diǎn)的過程中,你是如何考慮他的UI、安全性、高性能、SEO、可維護(hù)性以及技術(shù)因素的...
    Arno_z閱讀 1,354評論 0 1
  • 第一章 1.什么是DOM DOM: Document Object Model(文檔對象模型) 是JavaScri...
    fastwe閱讀 879評論 0 0
  • //------------------------- 第一章 認(rèn)識JQuery ----------------...
    米塔塔閱讀 801評論 0 9
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,361評論 0 6
  • 一、樣式篇 第1章 初識jQuery (1)環(huán)境搭建 進(jìn)入官方網(wǎng)站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,662評論 0 44

友情鏈接更多精彩內(nèi)容