0

我正在为一个工作 Intranet 站点创建一个常见问题解答页面,并且希望有一个包含问题的文件和一个包含相关答案的文件,因此不必编辑多个不同的页面,我只需编辑 2 个页面即可。我已经让它工作了,所以当点击问题时,答案会显示在 faq.php 页面上的问题下方:

<ul>
<li><a id="abc" href="#"> question here</a></li>
<div id="abc1"></div>
</ul>

在我的外部 jQuery 脚本页面上:

$(function() {
    $('#abc').click(function() {
        $('#abc1').load('test.php #xyz');
});

它工作得很好......有没有办法将它放入一个函数中,这样我就不必为每个新问题 div id 编写一个新的 jQuery 块?

4

1 回答 1

1

不要使用身份证。ID 应该是唯一的。因此,如果您将您的功能与 ID 选择器挂钩,它将是具体的。我们需要一些通用的解决方案。

使用 css 类选择器,以便您可以将其应用于许多项目。所以我会像这样对标记做一个小的调整。

 <ul>
    <li>
        <a id="abc" href="#" class="q"> question here</a>
        <div id="abc1" class="a"></div>
    </li>
    <li>
        <a id="abc2" href="#" class="q"> question 2 here</a>
        <div id="abc2" class="a"></div>
    </li>
 </ul>

脚本

$(function() {
    $('.q').click(function() {
      var item=$(this);
      item.parent().find(".a").load('test.php #xyz');
});

如果您想将点击问题的 ID 传递给 test.php 页面以获取该特定问题的答案,您可以发送 ID(标签的)

$(function() {
    $('.q').click(function() {
      var item=$(this);
      var clickedQuestionId=item.attr("id");
      item.parent().find(".a").load("test.php?qid="+clickedQuestionId+"#xyz");
    });
});

这是一个 jsFiddle 演示(在答案中使用静态文本而不是调用 ajax 方法) http://jsfiddle.net/EcWFm/11/

于 2012-10-07T01:01:31.160 回答