>  기사  >  웹 프론트엔드  >  js/jq에 의해 동적으로 로드된 요소를 모니터링할 수 없는 문제에 대한 해결 방법

js/jq에 의해 동적으로 로드된 요소를 모니터링할 수 없는 문제에 대한 해결 방법

php是最好的语言
php是最好的语言원래의
2018-07-23 12:02:502745검색

이 문서에서는 js/jq가 동적으로 추가된 요소가 바인딩 이벤트를 트리거할 수 없는 솔루션을 소개합니다. jquery 버전이 1.3~1.8인 경우 동적으로 추가된 js/jq 요소가 바인딩 이벤트를 트리거할 수 있습니다.

버전을 살펴보고 확인하세요.

jquery 버전 1.6 이하에서는 위임 이벤트를 지원하지 않습니다. #🎜 🎜#

jquery1.3~jQuery1.8 버전은 모두 라이브 대리자 이벤트를 지원합니다

jquery1.9 이상 버전은 라이브 대리자 이벤트를 지원하지 않지만 on 이벤트는 라이브를 대체할 수 있습니다# 🎜🎜## 🎜🎜#jquery1.3 이하(jquery1.3 제외), 이제 jquery 버전을 업데이트할 시간입니다.

Because

솔루션 없음, 솔루션 없음, 솔루션 없음, 솔루션 없음, 솔루션 없음, 솔루션 없음

jquery 버전이 1.3-1.8 사이인 경우 js에 의해 동적으로 추가된 요소 /jq 트리거 바인딩 특정 이벤트에 대한 솔루션(이벤트에서는 사용하지 않는 것이 좋습니다. 버전 1.6 이하에서는 이벤트가 지원되지 않으며 오류가 보고되기 때문입니다)

click例子
$('element').live('click',function(){})
element可以是动态生成的元素,可以是它的类或者id

jquery 버전이 1.9 이상인 경우 상위일수록 라이브 델리게이트 이벤트가 이동되며, 또한 on을 통해 달성됩니다. 바인딩 이벤트를 트리거하기 위해 js/jq에 동적으로 추가된 요소를 위한 솔루션

Attention
: 페이지에 낮은 버전의 jq(1.3-1.8)도 있는 경우 jq 상위 버전(jquery 1.9 이상)인 경우 상위 버전에서 라이브 대리자 이벤트가 제거됩니다. 결국 jquery 버전이 1.3~1.8 사이라도 라이브 이벤트를 사용하면 페이지에서 오류를 보고합니다.

click例子
$('父元素').on('click', '子元素', function(){})

이 때 동적으로 로드된 요소는 $('부모 요소') 내부에 있어야 합니다. 그렇지 않으면 바인딩 이벤트가 실패합니다. 즉, A 요소는 바인딩되어야 하지만 A 요소는 동적으로 생성되므로 jq는 A 요소에서 클릭 이벤트가 발생하는지 모니터링하기 위해 A 요소의 상위 요소를 가져와야 합니다.
예를 들어

<!DOCTYPE html>
<html>
<head>
    <title>js/jq 动态添加的元素不能触发绑定事件解决方案</title>
</head>
<script src="https://cdn.bootcss.com/jquery/1.9.0/jquery.js"></script><body>
<button>添加a标签</button>
<p class="a-Box">
    <a href="javascript:;" class="alt">My name is</a><br>
</p>
</body>
</html>
<script type="text/javascript">
    $(&#39;.a-Box&#39;).on(&#39;click&#39;, &#39;a&#39;, function(){
        alert(&#39;Jachin&#39;);
    })
    $(&#39;button&#39;).click(function(){
        $(&#39;p&#39;).append(&#39;<a href="javascript:;" class="alt">My name is</a><br>&#39;);
    })
</script>

동적으로 로드된 요소를 모니터링할 수 없는 문제를 완벽하게 해결할 수 있습니다.

마지막으로 jquery 버전이 첨부되었습니다

<script src="https://cdn.bootcss.com/jquery/1.2.3/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.2.6/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.3.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.4.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.5.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.6.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.7/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.8.0/jquery-1.8.0.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.9.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.10.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/1.12.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/2.0.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/2.1.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/2.2.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>

위 내용은 js/jq에 의해 동적으로 로드된 요소를 모니터링할 수 없는 문제에 대한 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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