AJAX를 통해 jQuery UI 탭에로드되는 내용을 조작하려고했습니다. 상상할 수있는 것처럼,이 요소는 "미래"DOM 요소이며 일반 $ (". someClass") 함수로 조작되지 않습니다.AJAX jQuery UI 탭 (숨겨진 DOM 요소)에 숨겨진 div로드
jQuery 1.7+를 사용하여 이벤트 처리가 더 이상 사용되지 않으며 new .on() 메소드로 대체되었으므로 .live()를 사용하여 읽었습니다.
내 문제는 AJAX 탭에서로드 할 때 숨기고 싶은 div는 초기 DOM로드 후에 조작되어야하며 처음에는 클릭 이벤트에 바인딩되지 않는다는 것입니다.
현재 $()로 싸인 내 기능은 다음과 같습니다.
클릭 핸들러를 사용하는 링크에 올바른 구문이 있다고 생각하지만로드 할 때 "숨겨진()"내 "숨겨진 스토리"div에 올바른 방법을 모르겠습니다.
또한 함수 자체가 전체 $()로 묶어서는 안됩니다.
도움이나 조언을 주시면 감사하겠습니다.
$(function(){
// this .hiddenStory div below is what I want to hide on AJAX load
// need syntax and/or new methods for writing this function
$(".hiddenStory").hide();
// this is a function that allows me to toggle a "read more/read less" area
// on the "hiddenStory" div
$(".showMoreOrLess").on('click', (function() {
if (this.className.indexOf('clicked') != -1) {
$(this).removeClass('clicked');
$(this).prev().slideUp(500);
$(this).html("Read More" + "<span class='moreUiIcon'></span>");
}
else {
$(this).addClass('clicked');
$(this).prev().slideDown(500);
$(this).html("See Less" + "<span class='lessUiIcon'></span>");
}
}));
});
// prevents default link behavior
// on BBQ history stated tab panes with
// "showMoreOrLess" links
$('.showMoreOrLess').click(function (event)
{
event.preventDefault();
// here you can also do all sort of things
});
// /prevents default behavior on "showMoreOrLess" links
를 호출의 일종이 있어야합니다! 감사! 첫 번째 옵션은 처음에 "display : none"을 사용하여 "hiddenStory"div를 숨기려면 훌륭했습니다. 여전히이 영역의 링크에 .preventDefault()를 적용하는 코드의 마지막 부분을 수정해야합니다. 이렇게하면 jQuery BBQ를 사용하여 URL의 탭 색인을 나타내는 동안 내 탭이 올바르게 작동합니다. 이 함수를 하나의 함수로 통합하거나 ".on()"을 사용하여 다시 작성하는 방법을 알려주시겠습니까? . –
// 바베큐의 역사를 기본 링크 동작을 방지 "를 showMoreOrLess"로 // 탭 창을 언급이 \t $ (". showMoreOrLess을") 링크를 클릭 (함수 (이벤트) \t { 에서는 event.preventDefault(); // 여기에 모든 종류의 일을 할 수도 있습니다 \t}); // "showMoreOrLess"링크의 기본 동작을 방지합니다. –
시도 할 수 있습니다. 그러나 저는 BBQ에 익숙하지 않습니다. '$ (. showMoreOrLess)'요소는 앵커 태그입니까? – vansimke