如何委派查询函数

How to delegate a query function

本文关键字:查询 函数 委派 何委派      更新时间:2023-09-26

我有以下网页:链接到页面。如果您转到"Galería"部分,您可以在左侧看到照片滑块和菜单。滑块上的每个图像都是可单击的,如果单击,则会用刚刚单击的照片填充空白区域。

纠正到那里。

问题是,当您想更改部分(左侧是显示"Nuestra tienda 2011"、"Mayo 2012"的菜单)时,据说我所做的是更改底部 ul 画廊的内容。

为此,我编写了以下代码:

<div id="lista_galerias">
            <ul>
                <li><div id="nuestra_tienda_show">Nuestra tienda 2011</div>
                    <script type="text/javascript">
                        $('#nuestra_tienda_show').click(function()
                        {
                            $('.jCarousel').html('');
                            $('<ul><li><div id="clickable"><img src="img/Escaparates_2011/img1.jpg" alt="Dormitorio azul turquesa." width="100" height="100"></img></div></li></ul>')
                                .prependTo('jCarousel');
                            $('#galeria_seleccionada').html('Nuestra tienda 2011');
                        });
                    </script>
                </li>
                <li><div id="mayo_2012_show">Mayo 2012</div>
                    <script type="text/javascript">
                        $('#mayo_2012_show').click(function()
                        {
                            $('.jCarousel').html('');
                            $('<ul><li><div id="clickable"><img src="img/Mayo_2012/img1.jpg" alt="" width="100" height="100"></img></div></li></ul>')
                                .prependTo('.jCarousel');
                            $('#galeria_seleccionada').html('Mayo 2012');
                        });
                    </script>
                </li>
            </ul>
        </div>

和旋转木马div:

<!-- DIV Contenedor de la imagen de la galería -->
        <div id="containerGaleria">
            <div id="containerImage"></div>
        </div>
        <!-- DIV Contenedor de la galeria de imágenes -->
        <div class="container_carousel">
            <div class="jCarousel">
                <ul>
                    <li><div id="clickable"><img src="img/Escaparates_2011/img1.jpg" alt="1" width="100" height="100"></div></li>
                    <li><div id="clickable"><img src="img/Escaparates_2011/img2.jpg" alt="2" width="100" height="100"></div></li>
                    <li><div id="clickable"><img src="img/Escaparates_2011/img3.jpg" alt="3" width="100" height="100"></div></li>
                </ul>
            </div>
            <button class="prev"><<</button>
            <button class="next">>></button>
        </div>

如您所见,我有一个包含 jCarousel 的div,另一个包含修改此 jCarousel div 内容的部分列表。

所以我的疑问是

我想也许当我删除 jCarousel 的 html 内容时,由于某种原因它不会重新加载 jCarousel 效果,并且它显示......好吧,作为一个没有属性的普通列表。如何重新加载该 jCarousel 列表以查看页面第一次加载时的样子?

编辑:我添加了这个:

$('#nuestra_tienda_show').click(function()
    {
        $('.jCarousel').html('');
        $('<ul><li><div id="clickable"><img src="img/Escaparates_2011/img1.jpg" alt="Dormitorio azul turquesa." width="100" height="100"></img></div></li></ul>')
            .prependTo('.jCarousel');
        $('#galeria_seleccionada').html('Nuestra tienda 2011');
                            $('.jCarousel').jCarouselLite({
                                btnNext: ".next",
                                btnPrev: ".prev"
                           });
                        });

但是,我的列表没有出现。即使我只添加

$('.jCarousel').jCarouselLite();

我无法进入页面,但似乎您错过了对.jCarousel的调用当您清除轮播的所有内容时($('.jCarousel').html('');)并添加新内容,所有事件和 jcarousel 的所有内容都会消失。所以:

<script type="text/javascript">
    $('#nuestra_tienda_show').click(function()
    {
        $('.jCarousel').html(''); // Here, you loose all jcarousel events, etc
        $('<ul><li><div id="clickable"><img src="img/Escaparates_2011/img1.jpg" alt="Dormitorio azul turquesa." width="100" height="100"></img></div></li></ul>')
         .prependTo('jCarousel'); // this element is unknown to jcarousel
        $('.jCarousel').jCarousell(); // Initialize the carousel again
        $('#galeria_seleccionada').html('Nuestra tienda 2011');
    });
</script>