>웹 프론트엔드 >JS 튜토리얼 >jQuery의 요소에 대한 가시성 변경을 어떻게 감지합니까?

jQuery의 요소에 대한 가시성 변경을 어떻게 감지합니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-30 00:25:02373검색

How do you detect visibility changes for elements in jQuery?

jQuery로 가시성 변경 감지

동적 콘텐츠로 작업할 때는 특정 요소의 가시성을 기반으로 작업을 수행해야 합니다. jQuery는 div가 표시될 때 트리거되는 이벤트 핸들러를 연결하는 방법을 제공합니다.

해결책:

이를 달성하려면 기존 jQuery .show()를 확장하면 됩니다. 가시성 변경 전후의 메서드 및 트리거 이벤트입니다. 다음은 사용자 정의 확장 코드 조각입니다.

jQuery(function($) {

  var _oldShow = $.fn.show;

  $.fn.show = function(speed, oldCallback) {
    return $(this).each(function() {
      var obj         = $(this),
          newCallback = function() {
            if ($.isFunction(oldCallback)) {
              oldCallback.apply(obj);
            }
            obj.trigger('afterShow');
          };

      // Trigger beforeShow event
      obj.trigger('beforeShow');

      // Call the original show method with the new callback
      _oldShow.apply(obj, [speed, newCallback]);
    });
  }
});

사용법:

확장된 .show() 메서드를 사용하려면 이벤트를 beforeShow 및 afterShow 트리거에 바인딩할 수 있습니다. . 예:

jQuery(function($) {
  $('#test')
    .bind('beforeShow', function() {
      alert('beforeShow');
    }) 
    .bind('afterShow', function() {
      alert('afterShow');
    })
    .show(1000, function() {
      alert('in show callback');
    })
    .show();
});

이 코드는 ID 테스트가 있는 div가 표시되거나 숨겨질 때 beforeShow 및 afterShow 이벤트를 트리거하여 가시성 변경에 따라 사용자 정의 코드를 실행할 수 있도록 합니다.

위 내용은 jQuery의 요소에 대한 가시성 변경을 어떻게 감지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.