【问题标题】:Problem on load a PHP page in a div with Shadowbox jQuery使用 Shadowbox jQuery 在 div 中加载 PHP 页面的问题
【发布时间】:2011-05-06 08:20:17
【问题描述】:

我有一个名为 page.php 的 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 的内容。问题是当我使用像 click() 这样的 jQuery 代码时,在 subapage.php 中它不起作用。如果我理解得很好,就像负载有问题一样。可能是 subpage.php 被加载之后,这个东西不起作用,就像这样。

有人知道可能出了什么问题吗?

提前致谢

【问题讨论】:

    标签: php jquery load shadowbox


    【解决方案1】:

    这是因为当您执行content:$("#hiddenDiv").html() 时,您会将预加载的子页面的内容放入不同的容器中。所以,之后这个新容器中的元素不会被绑定。

    您可以自动重新绑定它们,将 .click(function() {...}) 替换为 .live('click', function() {...})

    【讨论】:

    • 什么attr()?请制定或接受此答案并添加另一个问题。
    • 例如当我想设置一个属性时: $('#div').attr('checked','checked');这是行不通的。我可以做类似的事情吗?谢谢
    【解决方案2】:

    那是因为子页面中的点击没有绑定。一个简单的解决方法是在 subpage.php 文件中绑定点击。

    【讨论】:

    • 你的意思是做这样的事情?:$("#button").bind('click', function(){ alert("Hello "); });
    • 正确。在 subpage.php 中,但不要忘记检查 domready $(function(){ $("#button").bind('click', function(){ alert("Hello "); }); });
    • 查看@ariel 的回复,这就是问题所在。就jQuery而言,都是一页的,因为subpage.php包含在服务器端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2020-08-25
    相关资源
    最近更新 更多