JQuery, чтобы открыть все div в один клик - PullRequest
0 голосов
/ 07 сентября 2011

Пожалуйста, ознакомьтесь с приведенными ниже кодами. По какой-то причине я не могу открыть один div только при нажатии на ссылку редактирования, он открывает все div при нажатии на ссылку редактирования. Вот что у меня есть:

( function($) {
    $(document).ready(function() {
        // hides the slickbox as soon as the DOM is ready
        $('.slickbox').hide();           
        // toggles the slickbox on clicking the noted link  
        $('.slick-toggle').click(function() {
        $('.slickbox').toggle(400);
        return false;
        });
    });
} ) ( jQuery );

Вот часть HTML:

<li id="list_47">
<div>
    <div id="row">
        <div class="title id="bannerid59"><img src="banner_45_10.jpg" /></div>
        <div class="action"><a href="#" class=".slick-toggle">Edit</a></div>
    </div>
    <div id="row-right">
        <span class="small">Sort Order: 2</span><br>
    </div>
</div>
<div class="slickbox">blah blah box 1</div>
</li>

<li id="list_48">
<div>
    <div id="row">
        <div class="title id="bannerid60"><img src="banner_45_11.jpg" /></div>
        <div class="action"><a href="#" class=".slick-toggle">Edit</a></div>
    </div>
    <div id="row-right">
        <span class="small">Sort Order: 2</span><br>
    </div>
</div>
<div class="slickbox">blah blah box 2</div>
</li>

Я безуспешно просматривал другие примеры или решения (например, заменил $ ('. Slickbox'). Toggle (400); на $ (this) .next (". Slickbox"). SlideToggle (400); )

Любой указатель высоко ценится. Благодарю.

Ответы [ 4 ]

1 голос
/ 07 сентября 2011
(function($) {
  $(document).ready(function() {
    $('.slickbox').hide();           
    $('.slick-toggle').click(function() {
    $('.slickbox', $(this).parents("li")).toggle(400);
    return false;
    });
  });
}) ( jQuery );
0 голосов
/ 07 сентября 2011

Вы можете вызвать один из divs slickbox1, а другой slickbox2

0 голосов
/ 07 сентября 2011

Как насчет использования:

$("div[slickbox]").toggle()

Не пробовал, но я сделал это, чтобы связать события, и это похоже на работу.

0 голосов
/ 07 сентября 2011

используйте что-то вроде $(this).closest('.slickbox').toggle(400);

причина в том, что у вас есть два div с классом slickbox, а jquery просто открывает их все. вам нужно сказать, чтобы он открывал только тот, который вы хотите.

...