2016-04-07 4 views
0

У меня есть страница index.php, которая содержит и загружает все содержимое, поэтому не обязательно загружать их на другие страницы, и все происходит динамически. Так что давайте говорить у меня есть DIV в index.php:Измените загруженный div с другой страницы на другую страницу на той же странице

<div id="content"></div> 

и у меня есть полный файл content.php, который содержит большинство DIVS/страниц:

<div id="cont1">something : 
    <div id="innercont1"><a href="#">Dynamic click</a> 
    </div> 
</div> 
<div id="changeinnercont1"> 
    <img src="images/pic.jpg" /> 
</div> 

до сих пор так хорошо, но сценарий jQuery \ Ajax не работает в index.php, где он должен манипулировать divs из content.php. Это скрипт, который загружает OnClick событие дивы в #content от index.php и его прекрасно работает:

$("#content").fadeOut("slow",function(){ 
    $("#content").load("content.php #cont1"); 
    $("#content").fadeIn(); 
}); 

Но когда он загружает этот контент из content.php и когда я нажимаю ссылку текст ничего не происходит, потому что из другого сценария в index.php, что Isnt работает должным образом:

$(function() { 
    $("#innercont1").click(function (e) { 
    e.preventDefault(); 
     $("#innercont1").load("content.php #changeinnercont1"); 
    }); 
}); 

Я думаю, что браузер разве держит загруженный DIV с другой страницы, но только #content от своих собственных (index.php)

ответ

0

Когда слушатель ("#innercont1").click события создаются, не существует ни одного элемента в DOM с идентификатором innercont1, так как этот элемент динамически загружаются из других источников. Что вам нужно для этого экземпляра, это прослушиватель событий, который в любой момент поймает любой элемент с этим идентификатором. Вы можете привязать слушателя к элементу тела, например:

$(document.body).on('click', '#innercont1', function(){ 
    //code 
}); 
0

Это может быть, что ваш прослушиватель событий нажатия передние #innercont1 есть. Что происходит, если вы загружаете и связываете слушателя все в одном блоке, например.

$("#content").fadeOut("slow",function(){ 
    $("#content").load("content.php #cont1"); 
    $("#innercont1").click(function (e) { 
    e.preventDefault(); 
    $("#innercont1").load("content.php #changeinnercont1"); 
    }); 
    $("#content").fadeIn(); 
}); 
Смежные вопросы