programing

jQuery 'if .change() 또는 .keyup()'

lovejava 2023. 8. 12. 09:38

jQuery 'if .change() 또는 .keyup()'

jQuery를 사용하여 다음 중 하나의 경우 함수를 실행하고 싶습니다..change()또는.keyup()상승했습니다.

이런 거.

if ( jQuery(':input').change() || jQuery(':input').keyup() )
{
    alert( 'something happened!' );
}

편집

언급하는 것을 잊어서 죄송합니다.둘다요..change()그리고..keyup()범위에 포함할 변수가 필요합니다.

여러 이벤트를 공백으로 구분하여 여러 이벤트에 바인딩할 수 있습니다.

$(":input").on("keyup change", function(e) {
    // do stuff!
})

여기 서류들.

AJAX를 통해 동적으로 페이지 콘텐츠를 생성하거나 콘텐츠를 로드하는 경우 다음 예를 참조하십시오.

  1. AJAX 요청과 같이 스크립트가 두 번 이상 로드되는 경우 이중 바인딩을 방지합니다.
  2. 바인딩은 다음과 같습니다.body어떤 요소가 추가, 이동, 제거 및 재추가되었는지에 관계없이 문서의 모든 하위 항목body지정된 선택기와 일치하면 올바른 바인딩이 유지됩니다.

코드:

// Define the element we wish to bind to.
var bind_to = ':input';

// Prevent double-binding.
$(document.body).off('change', bind_to);

// Bind the event to all body descendants matching the "bind_to" selector.
$(document.body).on('change keyup', bind_to, function(event) {
    alert('something happened!');
});

주목해주세요!을 이용하고 있습니다.$.on()그리고.$.off()다음과 같은 이유로 다른 방법보다.

  1. $.live()그리고.$.die()는 더 이상 사용되지 않으며 최신 버전의 jQuery에서는 생략되었습니다.
  2. 별도의 함수를 정의하고(따라서 글로벌 범위를 혼란스럽게 함) 함수를 두 개 모두에 전달해야 합니다.$.change()그리고.$.keyup()개별적으로 또는 동일한 함수 선언을 각 함수에 전달합니다. 논리 복제...절대 용납할 수 없는 일입니다.
  3. DOM에 요소가 추가되면,$.bind()요소가 생성될 때 요소에 동적으로 바인딩되지 않습니다.그러므로 만약 당신이 결합한다면.:input그런 다음 DOM에 입력을 추가합니다. 바인딩 방법이 새 입력에 연결되지 않습니다.그런 다음 명시적으로 바인딩을 해제한 다음 DOM의 모든 요소에 다시 바인딩해야 합니다. 그렇지 않으면 바인딩이 중복됩니다.입력이 DOM에 추가될 때마다 이 프로세스를 반복해야 합니다.

이렇게 해주세요.

$(function(){
    var myFunction = function()
    {
        alert("myFunction called");
    }

    jQuery(':input').change(myFunction).keyup(myFunction);
});

변경 및 키업 이벤트에 가입할 수 있습니다.

$(function() {
    $(':input').change(myFunction).keyup(myFunction);
});

어디에myFunction실행할 기능은 다음과 같습니다.

function myFunction() {
    alert( 'something happened!' );
}

그런 식으로 사건이 진행되는 것이 아닙니다.대신, 당신은 그들에게 그들이 발생했을 때 호출될 기능을 제공합니다.

$("input").change(function() {
    alert("Something happened!");
});

하나의 함수를 작성하고 두 함수를 모두 호출합니다.

function yourHandler(e){
    alert( 'something happened!' );        
}
jQuery(':input').change(yourHandler).keyup(yourHandler);

change() 및 keyup() 이벤트 등록 기능은 원래 세트를 반환하여 체인으로 연결할 수 있습니다.

자, 여기 제가 Jquery를 사용하여 해결한 방법이 있습니다.

$("#c_debit").on("keyup change", function(e) {
 let debitValue = $("#c_debit").val();
 if(debitValue != 0)
 {
  $( "#c_credit" ).prop( "disabled", true );
 }
 else{
  $( "#c_credit" ).prop( "disabled", false );
 }
})

언급URL : https://stackoverflow.com/questions/7757293/jquery-if-change-or-keyup