저는 현재 jQuery와 ES6을 사용하여 간단한 읽어보기 토글을 수행하고 있습니다. 여기에 내 코드가 있으며 둘 이상의 페이지에서 더 많은 내용을 볼 수 있습니다. 궁금클릭 기능에 대한 ES6 및 jQuery 선택기의 범위
class ReadMore {
constructor(cfg) {
this.toggle = $(cfg.el).find('.read-more-toggle');
var toggleText = $('.read-more-toggle').text().split(" ")[0];
$('.read-more-toggle').click(function(e) {
e.preventDefault();
if ($(this).hasClass("read-less-toggle")) {
$(this).parent().prev(".read-more").hide()
$(this).removeClass("read-less-toggle")
$(this).text(toggleText + " More");
} else {
$(this).parent().prev(".read-more").show();
$(this).text(toggleText + " Less");
$(this).addClass("read-less-toggle");
}
});
}
}
export default ReadMore;
는 왜 this.toggle
를 사용할 때 그것은 단지 read-more
의 한 인스턴스에서가 아닌 다른 인스턴스의 작동하는지 그 것이다,하지만 난 $('.read-more-toggle')
를 사용할 때 직접 작동합니다. 나는 그 범위에 대해 다소 혼란 스럽다고 생각한다.
여기서 '클래스'를 사용하면 이점이없는 것 같습니다. 그것은 어떤 메소드도 가지지 않고, 당신은'.toggle' 필드를 사용하는 것조차하지 않습니다. 그래서 인스턴스를 저장할 필요가 없다면, 우선 그들을 생성하지 않고 간단한 것을 사용하십시오 'initReadMore (cfg)'함수를 호출해야합니다. – Bergi