Error

[Error][jQuery] Cannot create property 'guid' on string '*'

오선지♬ 2024. 8. 26. 19:54
728x90
반응형

1. jQuery 이벤트 바인딩 :

jQuery를 사용하고 jQuery 객체 대신 선택기 문자열에 이벤트를 바인딩하려고 하면 오류가 발생할 수 있습니다.

// Incorrect:
var selector = '.subheader > .sub-nav > .btn';
selector.on('click', function() {  // this will throw an error
    // ...
});

// Correct:
var $element = $('.subheader > .sub-nav > .btn');
$element.on('click', function() {
    // ...
});

 

 

2. 이벤트 바인딩 하자마자 해당 함수가 즉시 호출 :

겪고 있는 문제는 요소 의 이벤트 onChangeTab에 함수를 바인딩할 때 함수 를 잘못 호출하여 발생합니다

.click.subheader > .sub-nav > .btn

제공하신 코드 조각에서 onChangeTab참조로 전달하는 대신 바인딩할 때 바로 함수를 호출합니다.

이로 인해 함수 호출의 결과가 undefined( onChangeTab아무것도 반환하지 않으므로)

이벤트 처리기가 실패하게 되어 보이는 오류가 발생합니다.

 

오류코드

$container.on('click','.subheader > .sub-nav > .btn', onChangeTab());

 

수정코드

$container.on('click','.subheader > .sub-nav > .btn', onChangeTab);
728x90
반응형