1

たとえば、私は持っています:

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

したがって、このコードは 5 つの div を 1 行にレンダリングし、各行に 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; ?>

どの div をクリックしても、同じ URL で新しいウィンドウが開きますが、データベースに 5 つの異なる URL があり、各行の最初の div をクリックすると、1 つのウィンドウが開きます。最初の URL で、2 番目をクリックすると 2 番目の URL が開きます

これはclass="item1"、item2、item3、item4、item5などのクラスを使用することで可能だと思いましたが、URLが5つではなく3つしかない場合、この場合、最初の3つのdivをどのように作成できますか最初の 3 つの URL を開きますが、残りの 2 つが最後の URL を開きます。これは 3 つの div です

私の貧弱な英語で申し訳ありませんが、これを行う方法を知っているかもしれません、ありがとう!

ps: 私は codeigniter を使用しています

4

2 に答える 2

3

クラスの代わりに、各部門にitem_1、item_2などのIDを設定できます。また、JavaScriptでは、各部門に個別にリスナーを設定できます。

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

Javascriptの場合、コードは次のようになります。

<?php $index = 0;?>
<?php foreach($url->result() as $u): ?>

<script>
$(document).ready(function(){
    $('#item_<?php echo $index++;?>').click(function(){

        setTimeout(function(){

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


    }, 500)

})
})
</script>
<?php break; ?>
<?php endforeach; ?>
于 2012-06-13T12:41:44.840 に答える
1

私が考えることができる2つのオプション。まず、divのデータ属性としてURLを追加することです。これにより、javascriptアクションでリンクを取得するためにdata-url="url here"使用できます(使用できる場合もありますが、IEの互換性についてはわかりません)。$(this).attr('data-url')data()

2番目のオプションは、divに非表示のアンカーを配置することです.JavaScriptアクションでは、クリックしたdiv内のアンカーを選択してURLを取得できます

于 2012-06-13T12:33:41.143 に答える