>웹 프론트엔드 >JS 튜토리얼 >jquery에서 keyup 이벤트가 실행되지 않는 이유는 무엇입니까?

jquery에서 keyup 이벤트가 실행되지 않는 이유는 무엇입니까?

黄舟
黄舟원래의
2017-06-27 14:20:041873검색

원합니다
1. #skillKey tr 요소를 클릭하면 코드 색상이 변경됩니다.
2. 이후 키보드를 통해 입력하면 현재 요소의 텍스트가 변경됩니다. 디버깅단계는 생략됩니다. as Alert(123)
HTML 코드 코드는 다음과 같습니다.

<table id="skillKey">
<tbody>
<tr>Q</tr>
</tbody>
<table>

JQuery코드는 다음과 같습니다.

$(function () {

    $(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {
        $(this).css(&#39;color&#39;,&#39;red&#39;);
        $(this).keyup(function(){
        alert(123)
        });
    });
})

요소를 클릭하면 색상이 바뀌는데 키보드를 통해 입력하면 경고가 표시되지 않는 이유는 무엇입니까? 실제로 $(document).keyup()을 통해 효과를 얻을 수 있는데, 그 이유를 알고 싶습니다. 아마도 keyup()이 바인딩되어야 하는 요소 유형과 관련이 있는 것일까요?

또 다른: 잘못된 keyup()function호출 방법입니다. 다음과 같이 작성하면:

$(function () {

    $(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {
        $(this).css(&#39;color&#39;,&#39;red&#39;);
        $(this).keyup(alert(123));
    });
})

그럼 tr을 클릭한 후 요소의 색상이 변경되면 123 창이 나타납니다.

먼저 실수 중 하나를 지적하세요

$(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {
    $(this).css(&#39;color&#39;,&#39;red&#39;);
    $(this).keyup(function(){
    alert(123)
    });
});

event를 이렇게 바인딩하면 tr은 클릭할 때 한 번 바인딩되고, 클릭한 횟수만큼 바인딩됩니다. 이 예는 여전히 바인딩되지 않습니다. 당신은 tr에 있습니다. 입력을 한 후 다음 코드를 작성하여 효과를 확인하고

$(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;input&#39;, function () {
    $(this).css(&#39;color&#39;,&#39;red&#39;);
    $(this).blur(function(){
        alert(123)
    });
});

제안해 주세요

사용해야 할 요소는 먼저 cache일 수 있습니다. $를 남용하지 마세요. 읽기 쉽다면 체인을 사용할 수 있습니다

$(&#39;#skillKey&#39;).on(&#39;click&#39;, &#39;tr&#39;, function () {    var $this = $(this);
    $this
        .css(&#39;color&#39;, &#39;red&#39;)
        .keyup(function () {
            alert(123)
        });
});


위 내용은 jquery에서 keyup 이벤트가 실행되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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