点击父项触发的事件

时间:2009-09-27 09:50:24

标签: javascript jquery

问题解决了,我在代码中犯了另一个愚蠢的错误...抱歉,谢谢

示例:

<div id="window1Header" class="windowHeader">
   Window 1 <a id="min1" class="minimize">[-]</a> <a id="max1" class="maximize">[+]</a>
</div>
<script>
    $(function() {

    $(".windowHeader").mousedown(function () { 
        $(this).parent().css({"border" : "#000 1px dashed"});
        $(this).parent().draggable({ containment: 'parent' });
    });
$(".windowHeader").mouseup(function () { 
        $(this).parent().css({"border" : "#ccc 1px solid"});
        setTimeout(function() {
            $(this).parent().draggable('destroy');
            }, 100);
    });

   $('#min1').click(function(e) {
     e.stopPropagation();
        $("#window1Body").hide().slideUp(500);
});
$('#max1').click(function(e) {
    e.stopPropagation();
        $("#window1Body").hide().slideDown(500);
});

    });
</script>

outerdiv(window1Header)有一个mousedown和up事件,2个链接(min1和max1)有click事件。但是点击链接将触发绑定到window1Header的事件。  我怎样才能触发正确的事件? 我正在使用jquery库btw。

感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

通常,使用stopPropagation来防止事件冒泡到父元素。 E.g:

$('.minimize').click(function(e) {
    e.stopPropagation();
    ...
});

答案 1 :(得分:0)

你需要在你的标签上至少有一个href =“#”,否则点击事件永远不会触发。此外,在点击事件中返回false。

 $('#max1').click(function(e) {
    $("#window1Body").hide().slideDown(500);
    return false;
 });