Php 如何为每个div设置自己的触发器

Php 如何为每个div设置自己的触发器,php,javascript,codeigniter,Php,Javascript,Codeigniter,例如,我有: <?php foreach($query as $q): ?> <div class="item"> <?php echo img($q->images); ?> </div> <?php endforeach; ?> 这段代码在一行中呈现5个div,每行5个div,这段代码: <?php foreach($url->result() as $u):

例如,我有:

<?php foreach($query as $q): ?>
        <div class="item">
        <?php echo img($q->images); ?>
        </div>
<?php endforeach; ?>

这段代码在一行中呈现5个div,每行5个div,这段代码:

<?php foreach($url->result() as $u): ?>

<script>
$(document).ready(function(){
    $('div.item').click(function(){

        setTimeout(function(){

                    window.open('<?php echo $u->url; ?>');


        }, 500)

    })
})
</script>
<?php break; ?>
<?php endforeach; ?>

$(文档).ready(函数(){
$('div.item')。单击(函数(){
setTimeout(函数(){
窗口。打开(“”);
}, 500)
})
})
不管我们点击哪个div,它都会用相同的url打开一个新窗口,但是如果我的数据库中有5个不同的url,我希望当我们点击每行的第一个div时,它会用第一个url打开一个窗口,当我们点击第二个url时,它会打开第二个url

我认为这可以通过使用类来实现,例如class=“item1”、item2、item3、item4、item5,但是如果我们只有3个URL,而不是5个,那么在这种情况下,我如何使前三个div打开前3个URL,而左两个将打开最后一个,这是3个div

对不起,我的英语很差,也许你知道怎么做,谢谢


ps:我正在使用codeigniter

2个我能想到的选项。首先是将url添加为div的数据属性,这样您就可以使用
$(this.attr('data-url')
来获取javascript操作中的链接(甚至可以使用
data()
,但不确定IE兼容性)


第二个选项是在div中有一个隐藏的锚点,然后在javascript操作中,您可以在单击的div中选择锚点,以获得我能想到的URL

2个选项。首先是将url添加为div的数据属性,这样您就可以使用
$(this.attr('data-url')
来获取javascript操作中的链接(甚至可以使用
data()
,但不确定IE兼容性)


第二个选项是在div中有一个隐藏的锚,然后在javascript操作中,您可以在单击的div中选择锚,以获取URL,而不是一个可以具有id的类,如item_1、item_2等。对于每个分区,您可以在javascript中分别在每个div中设置侦听器

<?php $index = 0;?>
<?php foreach($query as $q): ?>
        <div id="item_<?php echo $index++;?>">
        <?php echo img($q->images); ?>
        </div>
<?php endforeach; ?>


您可以使用id来代替类,如item_1、item_2等。对于每个分区,您可以在javascript中分别在每个div中设置侦听器

<?php $index = 0;?>
<?php foreach($query as $q): ?>
        <div id="item_<?php echo $index++;?>">
        <?php echo img($q->images); ?>
        </div>
<?php endforeach; ?>


经典问题。看看你的兴趣,你的
div
里有什么?若你们只是插入图片,你们能做的就是简单地使用锚定标签。这是一个典型的问题。看看你的兴趣,你的
div
里有什么?如果您只是插入图像,那么您所能做的就是简单地使用锚定标记。