【问题标题】:jQuery / Colorbox - Pass one variable to <div id='inline_content'>jQuery / Colorbox - 将一个变量传递给 <div id='inline_content'>
【发布时间】:2012-04-26 05:31:25
【问题描述】:

我对 jQuery 一无所知,并且已经尝试了一个多星期。看来我需要专业的建议。在我们的教会网站上,我们有一个包含成员生日的页面。如果我可以将成员 ID 号放入 inline_content 块中,我可以通过一些参考获得我需要的所有数据。前任。 $memberid=$_REQUEST['memberid'];这是我正在使用的:

blanknew.php(页面标题)

大量的 PHP 代码


链接 rel="stylesheet" href="_css/colorbox.css" 脚本 src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" /script> 脚本 src="_js/jquery.colorbox.js" /script> 脚本 $(文档).ready(函数(){ $(".inline").colorbox({inline:true, href:"#inline_content", width:"300px"}); }); /脚本
/头

身体
在这里,我有一个包含成员名称(和成员 ID)的表

td nowrap="nowrap" align="left" a class="inline" href="#inline_content?memberid=' . $ID .'"' 。 $fname 。 '/a /td; (我很确定这是错误的)

<div style='display:none'>
    <div id='inline_content' style='padding:10px; background:#fff;'>
      <?php 
echo $_REQUEST['memberid']; (this gives me nothing)
?> 
      </div>
</div>

我并不懒惰,但我只是不知道从哪里开始。如果有人能给我我需要的代码以及确切的放置位置,我将不胜感激。 (我不能说我对我的代码的自动格式化印象深刻 - 这已经够糟糕了)

【问题讨论】:

标签: jquery colorbox


【解决方案1】:

我不完全确定您可以使用什么或您的最终目标是什么,但我有一些想法。

您可以将这样的脚本函数放在页面顶部,如果它们包含在 $(document).ready() 函数中。听起来您想要做的是将成员 ID 放入您显示的 div 中。您可以为页面上的每个成员设置一个事件,这样当他们被点击时,无论您存储了他们的“成员 ID”,都可以显示在您的内联内容中。 (您的意思是用 display:none 隐藏内联内容吗?您可以将其应用于内部 div 并获得相同的结果 - 如果 $_REQUEST['memberid'] 被填充,您将看不到它而 display:none 在那里除非您有一个更改该属性的操作。)

这里有一个可能对你有用的想法:

<script>
    $(document).ready(function() {
       // Specify a class for all your members and then 
       $(".some_clickable_element_with_member_id").click(function() {
           $("#inline_content").html( $(this).attr("id") );
           return false; // if you don't want the click to go anywhere (assuming you're using an <a> tag.
       });
    });
</script>

您是否尝试设置一个表格,以便您希望通过超链接将成员 ID 的隐藏属性传递到后续页面?你不需要 jQuery。您可以在 php 中使用 memberid 作为目标页面的查询字符串的一部分来构建链接。例如:

<a href="processThisMember.php?member_id=<?php echo $id; ?>">
    <?php echo $fname; ?>
</a>

编辑

在尝试集成插件之前,您可能希望等待对 jQuery 和 HTML 更加熟悉。阅读 selectorsmanipulation 的 jQuery 文档,一旦您了解或部分吸收了如何查找元素并对其进行操作,您将能够更好地解决这个问题和未来的场景。

要为您的链接访问此人的 id,只需询问 id:

$(this).attr("id");

$(this) 会根据上下文而变化。我假设您正在链接$(".memberid").click(function() { 上操作。此时,$(this) 指的是被点击的超链接。

要访问名称,只需请求 html();这将获取开头和结尾之间的内容

$(this).html();

总而言之,

$("#inline_content").html( $(this).attr("id") + " " + $(this).html() );

我不熟悉 colorbox,所以我不知道您应该如何或应该如何将值传递给它。我建议给出 # 的 href,但看起来 是颜色框被激活的方式。将您的链接改回为

的href
<a href="#inline_content" id=...></a>

将类和 id 留在那里,希望您能够接受这些想法并生成您​​正在寻找的行为。当你问这个问题时,你仍然有可能留下关于你如何拥有它的href,但希望这会让你到达你想去的地方。一次改变一件事并观察行为如何变化。

删除仅包含 $("#inline_content").html(); 的脚本标签,这不是我打算让您使用该信息的方式。

当您更改背面时,您应该会再次看到您的颜色框弹出窗口。

【讨论】:

  • 非常感谢您的及时回答。我正在处理的页面是 jfbc.net/blanknew.php 。我现在得到列表中最后一个人的 id# 和姓名。现在很乱,但这是代码:
  • 嗨@Bill;我看到您已将我的想法添加到页面中,但您尚未添加可以使用它的标记。您需要将 class="memberid" 添加到所有人员超链接。然后,如果你不想更改 jQuery 代码,你需要给 标签提供成员 id 的属性的 id。像这样:&lt;a class='memberid' id='1115'&gt;Robbie Taylor&lt;/a&gt;
  • 如果您想查看代码,请告诉我发送到哪里。这个网站给我带来了太多的麻烦......
  • 恭喜;单击成员时,您似乎已经用 id 填充了#inline_content。现在,如果您希望彩盒仍然触发,请删除 return false;。看起来 colorbox 插件已经阻止了点击“去任何地方”。
猜你喜欢
  • 1970-01-01
  • 2016-02-21
  • 2014-12-02
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
相关资源
最近更新 更多