동적 로딩 콘텐츠에서 중복 객체를 해결하고 싶습니다. 쉽게 이해할 수 있도록 다음 소스 코드를 살펴보십시오. 이 페이지의 헤더에 스크립트를 들어 1 개 동적 컨텐츠로드jQuery를 사용하여 동적 로딩 페이지에서 중복 객체를 해결하는 방법은 무엇입니까?
<body> <div id="general-div"></div>> <div id="div1"></div> <div id="placeholder1"> Dynamic Content will be placed inside this. <div class="inner-div"></div> <div class="div1"></div> </div> </body>
와
자료 페이지 HTML, 그것은 다음 코드와 같은 "일반 DIV"개체를 선택하는 것은 매우 쉽습니다.
$('#general-div')
자리 표시 자 1 안의 선택 "inner-div"객체는 매우 쉽습니다. 그래서 아래 코드를 사용하여 선택할 수 있습니다.
$('.inner-div')
위의 코드는 완벽하게 작동 할 수 있습니다. 그러나, 다음 HTML과 같은 문서에 복제 된 객체가 두 개 이상인 경우 위 코드를 사용할 수 없습니다. 위의 코드는 내가 원하지 않는 2 개의 객체를 반환합니다.
자료 페이지 HTML -
<body> <div id="general-div"></div>> <div id="div1"></div> <div id="placeholder1"> Dynamic Content will be placed inside this. <div class="inner-div"></div> <div class="div1"></div> </div> <div id="placeholder2"> Dynamic Content will be placed inside this. <div class="inner-div"></div> <div class="div1"></div> </div> </body>
가능한 부하 다른 동적 콘텐츠를로드하는 방법 1
후 내가해야 등 동적 로딩 내용의 지정 jQuery를 대상 foreach는 스크립트를 만들 다음 코드.
// Deep copy for jQuery object.
var specfiedjQueryObj = $.extend(true, {}, jQuery);
// modify find function in jQuery object.
specfiedjQueryObj.fn.find = function(selector)
{
// by adding placeholder selector before eval result.
return new specfiedjQueryObj.fn.old_find('#placeholder1 ' + selector);
};
// So, I can select any object in dynamic loading content.
(function($)
{
// This result must be 1 object.
$('.div1');
})(temp);
비록이 솔루션이 훌륭하게 작동해야합니다. 하지만 jQuery는 매우 복잡한 객체라는 것을 알게되었습니다. 나는 그것을 사용하려고 할 때 많은 오류를 발견했다.
이 문제를 해결할 생각이 있습니까?
추신. PlaceHolder ID가 고정 ID가 아닙니다. 따라서 셀렉터 규칙에서 고정하는 것은 불가능합니다. 더욱이, 나는 정확히 문서의 요소와 위치 (처음, 마지막 또는 중간)를 정확히 알지 못합니다. 동적로드 때문에 많은 페이지에 내용이 표시됩니다.
'inner-div'의 내용을 알고 계십니까? 독특한가요? 이 질문과 관련 질문에 대한 답변과 의견을 바탕으로 jQuery가 작동하지 않거나 충족해야하는 비즈니스 규칙 및 기술 요구 사항을 이해하지 못합니다. – beggs
나는 당신이 jQuery에 대해 오해하고 있다고 생각한다. 예를 들어 처음 보셨습니까? –