Проблема при загрузке PHP-страницы в div с помощью Shadowbox jQuery

#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 она включена на стороне сервера.