Jquery触发器问题

时间:2010-02-28 00:29:23

标签: jquery html css

我有两个DIV元素。 HTML看起来像这样:

<div id="first"><div id="second"></div></div>

这个元素的CSS是:

#first{ float:left; width:656px; border-bottom:1px solid #CCC; padding-top:5px; display:block; cursor:pointer;}
#second{ float: right; margin-right:10px;  border:1px solid #9F0; width:230px; height:14px; background-color:#FF0; display: none;}

Jquery代码:

$(document).ready(function(){
    $("#first").click(function(event) {
        $("#third").load('index.php');
    });
});

$("#first").live('mouseover', function() {       
    $("div#second").show();
});

$("#second").live('click', function() {       
    $("#fourth").load('somepage.php');
});

我想要做的是当第一个DIV上的鼠标悬停触发功能,第二个DIV出现在第一个DIV内时,用户可以点击第二个DIV并打开“somepage.php”。使用此代码,第二个DIV的Jquery函数被第一个DIV的CSS显示块覆盖,并且两个Jquery都被触发。

当第二个DIV函数被触发时,如何暂停第一个DIV的Jquery click函数?

2 个答案:

答案 0 :(得分:2)

如果您不使用实时(即使用click / bind代替)第二次单击处理程序,那么您只需从处理程序返回false或调用event.stopPropagation()。

另一个解决方案是检查event.target.id上的第一个div click处理程序,看看点击了什么。

答案 1 :(得分:0)

你可以使用unbind:

$( “#第一”)解除绑定( “鼠标悬停”);

我认为这有效,但请查看jquery文档:http://docs.jquery.com/Events/unbind