0

我有以下标记:

<div id="basket-btn">
<button class="buyout" type="button"><span>Text</span></button>
</div>

和两个点击处理程序:

$('#basket-btn').click(function(){
alert(1);
})

$('.buyout').click(function(){
alert(2);
})

问题在于,当我单击 div 或按钮上升时,只有第一次单击处理程序。如何解决?
谢谢。

更新
第一次单击滑动面板,它会向下和向上移动。此滑动面板上的第二个 for 按钮。

4

2 回答 2

2

不确定您期望什么输出,但是如果您希望点击两个警报,这似乎对我有用:

<script type="text/javascript">
 $(document).ready(function(){
      $('#basket-btn').click(function(){
           alert(1);
      })

      $('.buyout').click(function(){
           alert(2);
      })
 });
</script>

或者,您可能需要一个函数来检查子按钮“.-buyout”是否已被点击或未使用 data()。这只允许显示 alert(1) 或 alert(2)。带有以下注释:

• 当点击.-buyout 按钮时会触发alert(2)。

• 如果div#basket-btn 被点击,而.-buyout 没有被点击,alert(1) 将被触发。

<script type="text/javascript">
        $(document).ready(function(){
            $('#basket-btn').click(function(){
             if($(this).children().data('clicked') != true) {
                // if child button has not been clicked; do this...
                alert(1);
             }
            })

            $('.buyout').click(function(){
                // if child button is clicked; do this...
                alert(2);
                $(this).data('clicked', true);
            })
        });
</script>

以上可能更接近你想要的效果。

于 2012-08-15T12:35:44.667 回答
2

两个处理程序运行良好。是一个现场演示。

确保将你的函数包装在里面

$(document).ready(function(){
//your stuff here
});

如果你想阻止按钮点击的第一个功能,你可以使用stopImmediatePropagation()

是一个有效的现场演示。

于 2012-08-15T13:29:10.660 回答