0

我正在尝试将 bootstrap 框架中的 popover 元素用于 Javascript/jQuery,它仅适用于 while 循环中的第一个元素。我怎样才能使它适用于所有人?

为什么是这样?一直试图弄清楚这一点......

<?php
require 'include.php';
session_start();

    $selectBets = $dbc->query("SELECT * FROM `bets` ORDER BY `bid` DESC LIMIT 10");
?>
<style type="text/css">
#hash_text {
    font-size: 3.8px;
}
</style>
<table class="table table-striped table-bordered table-hover">
                <thead>
                  <tr>
                    <th>Bet Number</th>
                    <th>Amount</th>
                    <th>Send Address</th>
                    <th>Time Created</th>
                    <th>Time Expires</th>
                    <th>Chance to Win</th>
                    <th>Payout Multiplier</th>
                    <th>Final Profit</th>
                    <th>Server Hash</th>
                  </tr>
                </thead>
                <tbody>
                <?php while($BetsArray = $selectBets->fetch()) { ?>
                  <tr>
                  <td><?php echo $BetsArray['bid']; ?></td> 
                  <td><?php echo $BetsArray['amount']; ?></td> 
                  <td><?php echo $BetsArray['deposit_address']; ?></td> 
                  <td><?php echo date('m/d/Y - H:i:s', $BetsArray['time_created']); ?></td> 
                  <td><?php echo date('m/d/Y - H:i:s', $BetsArray['time_expires']); ?></td> 
                  <td><?php echo $BetsArray['win_chance']; ?></td> 
                  <td><?php echo $BetsArray['multiplier']; ?></td> 
                  <td><?php echo $BetsArray['profit']; ?></td> 
                  <td><a id="hash" data-container="body" data-toggle="popover" data-placement="right">Click here for Server Hash</a></td>
                  </tr>
                <?php } ?>
                </tbody>
              </table>
              <script type="text/javascript">
              $(function() {
                $('#hash').popover({
                    html: true,
                    placement: 'right',
                    content: '<?php echo '<span id="hash_text">' . hash('sha512', $BetsArray['number'] . '-' . $_SESSION['client_seed']) . '</span>'; ?>'
                });
              });
              </script>
4

1 回答 1

1

您正在通过复制 id 创建弹出框元素。将其更改为 class 并查看它的工作原理。

<a id="hash" data-container="body" data-toggle="popover" data-placement="right">Click here for Server Hash</a>

当您使用 id 选择器绑定到弹出框$('#hash')时,它将仅选择 DOM 中出现的第一个具有 id 的元素,从而选择您所看到的行为。

如果你想快速修复,那么你可以使用属性选择器来选择像这样的 id。

$('[id=hash]').popover({
                    html: true,
                    placement: 'right',
                    content: '<?php echo '<span id="hash_text">' . hash('sha512', $BetsArray['number'] . '-' . $_SESSION['client_seed']) . '</span>'; ?>'
});

但永远不要那样做

于 2013-09-20T03:24:40.600 回答