#php #jquery #load #shadowbox
#php #jquery #загрузка #shadowbox
Вопрос:
У меня есть страница php, вызывающая это page.php . На этой странице я использую эффект shadowbox для открытия новой php-страницы (subpage.php ) на нем. Итак, у меня есть что-то вроде:
$(document).ready(function() {
Shadowbox.init();
$("#configure").click(function(){
Shadowbox.open({
content: $("#hiddenDiv").html(),
player: "html",
title: "Hello",
height: 600,
width: 840
});
});
});
И затем в HTML-коде, который я использую :
<div id="hiddenDiv" style="display:none;">
<?php include 'subpage.php'; ?>
</div>
Shadowbox работает нормально, и я могу видеть содержимое subpage.php в нем. Проблема в том, что когда я использую код jQuery, такой как click(), в subapage.php это не работает. Похоже, что-то не так с загрузкой, если я правильно понял. Вероятно, subpage.php загружается после, и эта штука не работает, что-то вроде этого.
У кого-нибудь есть представление о том, что может быть не так?
Заранее спасибо
Ответ №1:
Это потому, что когда вы это делаете content:$("#hiddenDiv").html()
, вы получаете содержимое предварительно загруженной подстраницы в другой контейнер. Итак, после этого элементы в этом новом контейнере не привязаны.
Вы можете автоматически перепривязать их, заменив .click(function() {...})
на .live('click', function() {...})
Комментарии:
1. что за attr()? пожалуйста, сформулируйте или примите этот ответ и добавьте другой вопрос.
2. Например, когда я хочу установить атрибут типа: $(‘#div’).attr(‘проверено’,’checked’); Это не работает. Могу ли я сделать что-то подобное, чтобы это сработало? Спасибо
Ответ №2:
это потому, что щелчок на подстранице не привязан. простым обходным решением может быть привязка щелчка в subpage.php файл.
Комментарии:
1. Вы имеете в виду сделать что-то вроде этого?: $(«#button»).bind(‘click’, function(){ оповещение («Привет»); });
2. исправлено. внутри subpage.php , но не забудьте проверить, готов ли domready
$(function(){ $("#button").bind('click', function(){ alert("Hello "); }); });
3. Смотрите ответ @ariel, вот в чем проблема. Что касается jQuery, то это все одна страница, потому что
subpage.php
она включена на стороне сервера.