Como resolver objetos duplicados na página de carregamento dinâmico usando jQuery?
Eu quero resolver objetos duplicados no conteúdo de carregamento dinâmico. Por favor, olhe o seguinte código fonte para entender mais facilmente.
HTML da página base com 1 conteúdo de carregamento dinâmico
<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>
Para o script no cabeçalho desta página, é muito fácil selecionar o objeto "general-div" como o código a seguir.
$('#general-div')
É muito fácil selecionar o objeto "interior-div" dentro do espaço reservado1. Então eu posso selecionar usando o código abaixo.
$('.inner-div')
O código acima pode funcionar perfeitamente. No entanto, não posso usar o código acima quando houver mais de 1 objeto duplicado no mesmo documento, como o HTML a seguir. O código acima retornará 2 objetos que não são o que eu quero.
HTML da página base - Depois de carregar outro conteúdo de carregamento dinâmico
<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>
Solução possível 1
Eu devo criar o objeto especificado do jQuery para cada script no conteúdo de carregamento dinâmico, como o seguinte código.
// 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);
Mesmo assim, essa solução deve funcionar muito bem. Mas eu descobri que jQuery é um objeto muito complexo. Eu encontrei muitos erros quando tento usá-lo.
Você tem alguma idéia para resolver este problema?
PS.PlaceHolder Id não é um ID fixo. Então, é impossível consertá-lo na regra do seletor. Além disso, não sei exatamente a quantidade de elemento e posição (primeiro, último ou meio) dele no documento. Por causa do carregamento dinâmico, o conteúdo será exibido em muitas páginas.