source

사용자 지정 jQuery가 Wordpress Ninja Forms 플러그인에서 작동하지 않음

myloves 2023. 4. 3. 21:54

사용자 지정 jQuery가 Wordpress Ninja Forms 플러그인에서 작동하지 않음

양식에 영향을 주는 커스텀 jQuery 코드를 추가할 때 문제가 발생했습니다.

예를 들어, 누군가가 입력 또는 라디오 버튼을 클릭할 때 숨기거나 표시할 다른 입력 또는 요소가 있습니다.저는 이런 결과를 얻으려고 노력했습니다.console.log('trigger');dev. console에 아무것도 표시되지 않았습니다.또한 다음과 같은 방법을 시도했습니다.

를 호출하려면click와 함께 행사하다..on('click', function()...또는 이벤트를 소집하기 위해.trigger('click');또는 이벤트를 로 변경합니다.change

스크립트를 ninja 형식의 파일에 삽입하거나 엔딩 시 페이지에 삽입하려면body을 추가하다footer.php

jQuery의 시작 선언을 다음과 같은 함수 내에서 작동하도록 변경하려면 다음과 같이 하십시오.(function($) {$(document).ready(function(){.....

다른 플러그인을 시도할 수 있다는 것을 알고 있습니다.하나를 시도해보니 커스텀 jQuery가 동작합니다만, 이 플러그인이 매우 마음에 들고, 왜 이런 일이 일어나는지 모르겠습니다.

감사해요.

질문을 게시한 지 꽤 되었기 때문에 더 이상 도움이 필요한지는 모르겠지만, 앞으로 다른 사람에게 도움이 될 수도 있습니다.Ninja Forms에서 JS/jQuery를 실행할 수 없는 것은 Ninja Forms가 비동기적으로 폼을 로드하기 때문이라는 것을 알게 되었습니다.따라서 document.ready 함수가 실행될 때 폼은 아직 존재하지 않으며 바인딩할 수 없습니다.

Ninja Forms에는 다음과 같이 사용할 수 있는 자체 이벤트 준비 상태가 있습니다.

jQuery(document).on( 'nfFormReady', function( e, layoutView ) {
    // Your code goes here...
});

이벤트를 바인딩하려는 요소가 현재(문서 로드 시) 존재하지 않기 때문에 이벤트가 등록되지 않습니다.Ninja 폼은 폼 콘텐츠를 비동기식으로 로드하므로 폼이 완전히 로드될 때까지 기다렸다가 이벤트 청취자를 추가해야 합니다.이것으로 충분합니다.

var formExists = setInterval(function() {
  if ($(".nf-form-cont").length) {
    // Set your event listeners here, example:
    $("#nf-field-1").click(function(e) {
      console.log("click!");
    }
    clearInterval(formExists);
  }
}, 100); // check every 100ms

언급URL : https://stackoverflow.com/questions/40875677/custom-jquery-not-working-on-wordpress-ninja-forms-plugin