좋은 연습을 하나 개의 파일에 모든 페이지에 필요한 코드를 가지고 특정 자바 스크립트 파일을 가지고하는 것입니다 특정 기능이 필요한 페이지의 경우 이것은 마치 여러분이 어쨌든하고있는 것처럼 들리므로 우리는 구축 할 수있는 좋은 기반을 가지고 있습니다.
어떤 페이지에서 어떤 파일이 필요한지 빌드 할 수있는 방법은 많이 있지만 일반적인 상황에서는 자바 스크립트 파일이 브라우저에서 캐시되어 한 번만 다운로드하면됩니다. 이 댓글
예,하지만 같은 DOM 요소와 여러 페이지가있는 경우에 비추어
? 예를 들어, 내 validator() 플러그인은 $ ('form')처럼 으로 설정되어 있습니다. validate()가 있지만 페이지의 일부 양식이 인 경우에만 에서 작동하지 않을 수도 있습니다. . 이 경우 어떻게해야합니까?
특정 jQuery 플러그인을 첨부해야하는 페이지에 공통된 요소에 레이블을 붙이는 규칙을 제안합니다.예를 들어 validator()
플러그인이 필요한 여러 페이지에 <form>
요소가 있지만 특정 페이지에 두 개 이상의 <form>
요소가있는 경우 (<form>
요소 모두에 validator()
플러그인이 있어야 함) CSS 클래스를 사용하여 플러그인이 필요한 요소 인 <form>
을 구별합니다.
<!-- HTML -->
<!-- need to apply plugin to this -->
<form class="validator"> ... </form>
<!-- but not to this -->
<form> ... </form>
<script type="text/javascript">
// jQuery Code (in a separate file)
$(function() {
$('form.validator').validator();
});
</script>
그 방법은, 플러그인은 셀렉터 일치 <form>
그 요소에 적용한다.
편집 :
내가 레일의 도우미가 어떻게 작동하는지 모르겠지만, 당신이 직접이 아닌 모든 데이터에 대한 bind()
방법의 data
매개 변수를 사용하여 jQuery를에 이벤트 핸들러에 데이터를 전달할 수 있습니다 <a>
요소 자체의 일부 (예 : href
과 같은 속성). 링크 중 일부가 AJAX를 필요로하는 경우 CSS 클래스로 라벨을 지정하고 해당 요소의 href
에 URL을 저장하는 것이 좋습니다. 그리고 AJAX를 통해 요청을 링크가있는 페이지에서 사용 할 수있는 jQuery 코드에서 해당 링크는 사용자가 자바 스크립트를 사용할 수있는 일반 링크에 따라 작동합니다
<a class="ajax-link" href="/get/someData.php">Data retrieved through AJAX</a>
<a href="/normalLink.php">Standard link with no AJAX</a>
<script type="text/javascript">
$('a.ajax-link').bind('click',ajaxRequest);
function ajaxRequest(e) {
e.preventDefault();
$.get(e.target.href, function(data) {
$('#loadDiv').html(data);
});
}
</script>
같은 작업을 수행 할 수도 있지만 JavaScript가 활성화되면 데이터에 대한 AJAX 요청을합니다. 여기에 이름이 지정된 함수 인 ajaxRequest
을 사용 했으므로 스크립트를 쉽게 디버깅 할 수 있으며 재사용도 가능합니다. 그러나 원하는 경우 익명의 함수를 사용할 수 있습니다.
뛰어난 통찰력. 필자의 경우 validator() 플러그인이 필요없는 특정 (매우 큰) 형식이 있으므로이를 제외시키기 위해 "NOT"선택기를 사용할 것입니다. $ ('form : not (.no-validate)')와 같은 뭔가. validate(); ... –
물론, 하나의 '