스크립트 질문 입니다.
본문
구글 번역 스크립트 인데요.
아래 소스는 "영어" 을 클릭을 해야 번역 되는데 접속하면 자동으로 번역 되게 할려고 trigger('click')
해도 안먹히는데 왜 그런걸까요~?
<ul class="translation-links" style="position:fixed; top:0; left:0; z-index:999999">
<li><a href="javascript:void(0)" class="english" data-lang="en">영어</a></li>
</ul>
document.querySelector('.translation-links').addEventListener('click',function(event) {
let el = event.target;
if(el != null){
while(el.nodeName == 'FONT' || el.nodeName == 'SPAN'){el = el.parentElement;}//data-lang 속성이 있는 태그 찾기
const tolang = el.dataset.lang; // 변경할 언어 코드 얻기
const gtcombo = document.querySelector('.goog-te-combo');
if (gtcombo == null) {
alert("Error: Could not find Google translate Combolist.");
return false;
}
gtcombo.value = tolang; // 변경할 언어 적용
gtcombo.dispatchEvent(new Event('change')); // 변경 이벤트 트리거
}
return false;
}).trigger('click');
답변 3
<script src="http://code.jquery.com/jquery.min.js"></script>
<script>
// document.querySelector('.translation-links').addEventListener('click',function(event) {
$('.translation-links a').on('click',function(event) {
...
</script>
정도가 되지 않을까 싶습니다.
!-->기본코드는 바닐라이고
trigger('click') 는 제이쿼리라 그런 것 아닐까요?
자바스크립트와 제이쿼리가 같이 사용되서 그런거 같습니다. 자바스크립트 부분도 제이쿼리로 변경하시면 될거 같습니다.
답변을 작성하시기 전에 로그인 해주세요.