En el index.php hago link a 3 scripts.js, cargan bien y funcionan los scripts!
pero tengo otras páginas...
seccion1.php
seccion2.php
seccion3.php
... etc
Las cargo en un div sin problemas que tengo en el index.php pero
el contenido de seccion2.php necesita funcionar con los scripts que
cargue en el index.php, así que he intentado lo siguiente...
1._ en seccion2.php colocar solo la tabla y su contenido.
2._ le he colocado a seccion2.php las etiquetas <link> y <script> para
cargar los estilos y scripts externos (los mismos que cargaron en index.php).
3._ he utilizado getscript dentro de "success" en el ajax y con un "alert" veo
que si carga, pero los scripts que contiene el scripts.js no hacen efecto. No sé
si cargarlo de nuevo (primero lo llamo en el index.php) entra en conflicto.
4._ el getscript lo probe fuera del $.ajax() pero nada. (mostró el "alert" pero
todo quedo en blanco)
Intenté variando el orden, las rutas y otras formas con otros códigos
pero no consigo resultado completo.
En resumen, cuando cargo el contenido dentro del DIV deseado, un "alert"
me muestra que si carga el script pero un accordeon que tengo en seccion2.php no funciona!!!
El accordeon funciona bien si lo cargo directo desde firefox y IE6, y el contenido
del accordeon carga bien con ajax las otras minisecciones.php, el problema es
cuando todo lo quiero cargar en un DIV.
Código HTML:
index.php
<link rel="stylesheet" type="text/css" href="main.css">
<link rel="stylesheet" type="text/css" href="jquery.custom.css">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.ui.min.js"></script>
<script type="text/javascript" src="mi.ajax.js"></script>
<script type="text/javascript" src="otro.js"></script>
<div id="OtroContenidoFuncionaOK">
El contenido aquí utiliza los scripts que hice y los de
JQuery perfectamente.
</div>
<!-- este "rel" fue lo que se me ocurrió para diferenciar los enlaces
ya que las clases estan ocupadas -->
<a href="seccion2.php" class="ajaxLinkC" rel="#divTarget">cargar</a>
<div id="CargaExternaAqui">
Aquí cargo las otras secciones como: seccion2.php (en este caso)
y funciona el $.ajax()
</div>
Código:
seccion2.php
<!--
Tabla con un accordeon adentro, pero no funciona cuando
lo cargo dentro del DIV, pero si funciona si lo llamo desde
seccion2.php (con los .css y los .js linkeados claro esta
-->
table width="510" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
Accordeon de Jquery
aquí es donde está el problema, sólo cuando se carga con ajax.
</td>
</tr>
</table>
Código:
mi.ajax.js
$(".ajaxLinkC").ajaxLink();
(function($){
$.fn.ajaxLink = function(options){
var defaults = {
dataType : "html",
method : "post",
cache : false,
async : true,
beforeSend : false,
complete : false,
error : false,
global : true,
ifModified : false,
processData : true,
contentType : "application/x-www-form-urlencoded"
};
var options = $.extend(defaults, options);
return this.each(function(){
$(this).click(function(){
var targetOtro = $(this).attr('rel'); //aquí me traigo el "rel" del enlace.
$.ajax({
global : options.global,
ifModified : options.ifModified,
processData : options.processData,
contentType : options.contentType,
type : options.method,
url : $(this).attr('href'),
dataType : options.dataType,
cache : options.cache,
async : options.async,
data : $(this).attr('data'),
beforeSend : function(){
if(options.beforeSend) options.beforeSend();
},
complete : function(XMLHttpReq, textStatus){
if(options.complete) options.complete(XMLHttpReq, textStatus);
},
success : function(data){
$.getScript("jquery.min.js");
$.getScript("jquery.ui.min.js");
$.getScript('mi.ajax.js', function(jd) {
$(targetOtro).html(data);
alert('carga correcta'); // si lo muestra.
});
},
error : function (event, request, settings){
if (options.error) options.error(event, request, settings);
}
});
return false;
});
});
};
})(jQuery);
Bueno, la verdad hasta aquí pude continuar luego de varios días pero
no logro ver que pasa, no sé si el procedimiento para evitar este error
es otro, o si falta algo... he visto varios procedimientos aquí en forosdelweb,
cristallab, la web de jquery, muchas otras en google y aún no logro entender
Quizas hasta es fácil la respuesta pero el ajax es nuevo para mi
Saludos y gracias de antemano