问题解决了,我在代码中犯了另一个愚蠢的错误...抱歉,谢谢
示例:
<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。
感谢任何帮助!
答案 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;
});