2017-12-12 26 views
-5

autosize.js (구 버전)에서 swiper.js을 업데이트 할 수있는 방법을 찾고 있습니다. 구체적으로autosize.js의 함수를 호출하여 swiper.js를 업데이트하십시오.

:

나는 swiper 내에서 자동 크기 조정 텍스트 영역이있다. swiper는 자동 높이로 설정됩니다. 즉, 텍스트 영역이 overflow:hidden으로 설정된 swiper 슬라이드 내에 있음을 의미합니다. 이제 텍스트 영역의 높이가 변할 때 슬라이드 높이가 변하지 않기 때문에 콘텐츠의 overflow:hidden 부분이 잘립니다.

이 문제를 해결하려면 텍스트 영역의 높이가 변경 될 때 슬라이드 높이를 업데이트하고 싶습니다.

if (original !== height) { 
    ta.style.height = height + 'px'; 
    if (callback) { 
     options.callback.call(ta,ta); 
    } 

    /* send trigger to update slide here */ 
} 

이 부분은 제가 swiper를 업데이트 할 수있는 플러그인 외부 트리거를 보낼 일이 일어나고 다음 autosize.js에서

는 높이 설정 (라인 178)에서 일부가 플러그인 슬라이드. 나는이 기능을 (아무것도 공상)있다.

function updateSwiper(){ 
    mySwiper.update(); 
} 

위의 두 플러그인과 맞춤 기능은 위의 파일에 있습니다.

이제이 문제를 어떻게 해결할 수 있습니까? 미리 감사드립니다.

+0

나는 조금 기이하기 때문에 그것을 찾을 수 없다고 생각합니다. 플러그인은 독립적 인 작업 단위 여야합니다. 플러그인 내에서 외부 함수를 호출하면 캡슐화가 해제됩니다. – Jamiec

+1

스택 오버플로에 오신 것을 환영합니다! [둘러보기]를 가지고 둘러보고 [도움말], 특히 [* 좋은 질문을하는 방법 *] (/ help/how-to-ask)을 읽으십시오. 코드를 사용할 수 없습니다. 우리는 볼 수 없다. 문제를 시연하는 [mcve]로 질문을 업데이트하십시오. 일반적으로 내부 범위에서 외부 범위의 함수를 호출하는 것은 매우 간단합니다. 호출하면됩니다. –

+1

함수 포인터를 * in * 전달하여 적절한 시점에 실행하는 것을 고려하십시오. 플러그인을 설정할 때이 콜백 함수는 외부 기능에 대한 호출 일 수 있습니다. – Jamiec

답변

0

내 의견은 내 autosize.js의 구버전을 사용하고 있음을 알아 냈습니다. 새 버전에는 텍스트 영역의 높이가 변경 될 때 트리거가 있습니다. 이 문서에서 읽을 수 있듯이 : Autosize Documentation

jQuery를에이 문제를 해결하려면이 코드 조각을 사용할 수 있습니다

$('textarea').each(function(){ 
    autosize(this); 
}).on('autosize:resized', function(){ 
    console.log('textarea height updated'); 
}); 

이 코드는 먼저 텍스트 영역에 자동 크기 조정을 설정하고 높이 경우 추적 할 on('autosize.resized')를 사용 변경됩니다.

내 버전으로이 코드를 업데이트 :

$('textarea').each(function(){ 
    autosize(this); 
}).on('autosize:resized', function(){ 
    updateSwiper(); 
}); 

모든, 덕분에 내 문제를 해결

.