javascript - kaedah eksport melaporkan ralat yang tidak ditentukan selepas mengeksport
高洛峰
高洛峰 2017-06-26 10:57:31
0
2
1002

Oleh kerana jquery tidak disepadukan pada permulaan projek, banyak kaedah ditulis secara asli. Hari ini saya pergi ke dalam talian untuk mencari beberapa kaedah untuk memanipulasi nama kelas, seperti berikut:

export const hasClass = (el, cls) => {
    return el.className.match(new RegExp('(\s|^)' + cls + '(\s|$)'))
}

export const removeClass = function (el, cls) {
    if (hasClass(el, cls)) {  
        var reg = new RegExp('(\s|^)' + cls + '(\s|$)')
        el.className = el.className.replace(reg, ' ')
    }  
}

export const addClass = function (el, cls) {
    if (!this.hasClass(el, cls)) el.className += " " + cls
}

export const toggleClass = (el,cls) => {
    console.log(hasClass)
    if(hasClass(el,cls)){
        removeClass(el, cls)
    }else{
        addClass(el, cls)
    }  
}

Tetapi apabila saya menggunakannya, saya selalu mendapat ralat, seperti berikut:

Uncaught TypeError: Cannot read property 'hasClass' of undefined
    at addClass (Route.js?7c64bfe…:27892)
    at HTMLpElement.item.onclick (Route.js?7c64bfe…:139726)

Saya mencelah dan menyahpepijat, tetapi masih tidak dapat mencari punca masalah. Saya tertanya-tanya adakah di antara anda pernah mengalami masalah yang sama?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
ringa_lee
export const addClass = function (el, cls) {
    if (!this.hasClass(el, cls)) el.className += " " + cls
}

就是this的问题。直接把this.去掉,固定调用模块内部的hasClass方法。
export const toggleClass = (el,cls) => {
    console.log(hasClass)
    if(hasClass(el,cls)){
        removeClass(el, cls)
    }else{
        addClass(el, cls)
    }  
}

Memang betul untuk memanggil addClass dan removeClass dalam toggleClass Mengapa anda masih ingat menambah ini di hadapan hasClass?

習慣沉默

Ia bergantung pada objek yang dirujuk dalam this.hasClass() anda. Anda boleh menyemak sama ada ini merujuk kepada objek global

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!