防止在js内部单击切换以关闭

prevent click inside js toggle to close down

我试图阻止 js 在其内部单击时切换关闭。我为 class keep_open 创建了一个停止传播的新函数,但这段代码甚至不再让我点击按钮了。我做错了什么?

<?php $finalres = "02-03";?>
<div>
  <h3>ページ<?php echo $finalres; ?><h3>
</div>
<div class="m_page2s" style="display:inline-block;clear: both;">
  <img src="<?php echo $my_column; ?>" width="950" height="225" "/> 
</div>
<div class="bgcontainer_center<?php echo $finalres; ?>">
  <div id="wrapper">
    <div id="toggle<?php echo $finalres; ?>">
      <input type="button" value="<?php echo $finalres; ?>ページの写真を見る・変更">
      <div id="sidebar<?php echo $finalres; ?>">
<script>
    $(document).ready(function() {
        var sidebarn = "#sidebar02-03";
        var number = "02-03";
        var sidebarVisible = localStorage.getItem('sidebar' + number) == 'true';
        $(sidebarn).toggle(sidebarVisible);
        $('.bgcontainer_center + number').toggleClass('clicked', sidebarVisible);
        $("#toggle02-03").click(function() {
            $(sidebarn).toggle("slow", function() {
                localStorage.setItem('sidebar' + number, $(sidebarn).is(':visible'));
            });
            $('.keep_open').click(function(event) {
                event.stopPropagation();
                $(".bgcontainer_center + number").toggleClass('clicked');
            });
        });
    });
</script>

您将 stopPropagation 方法保留在另一个点击事件中。尝试分离事件,使您的代码变成这样:

$(document).ready(function() {
    var sidebarn = "#sidebar02-03";
    var number = "02-03";
    var sidebarVisible = localStorage.getItem('sidebar' + number) == 'true';
    $(sidebarn).toggle(sidebarVisible);
    $('.bgcontainer_center + number').toggleClass('clicked', sidebarVisible);
    $("#toggle02-03").click(function() {
        $(sidebarn).toggle("slow", function() {
            localStorage.setItem('sidebar' + number, $(sidebarn).is(':visible'));
        });
    });
    $('.keep_open').click(function(event) {
        event.stopPropagation();
        $(".bgcontainer_center + number").toggleClass('clicked');
    });
});