2010-03-08 59 views
1

我需要使用href,而不是点击事件,所以我可以在下面的语句中使用悬停。jquery添加href而不是点击事件

我想要做的就是能够像使用单击事件一样使用href,所以我可以通过href附加一个函数,因此我可以使用在CSS上完成的悬停效应。

它是一个删除按钮,所以它将是一个灰色的x,如果你悬停变红,并且如果你按下按钮,那么它会删除该行。

谢谢。

$(document).ready(function(){ 
    $(".btnDeleteOther").live("click", function(){ 
    $(this).closest('tr').not(':only-child').remove(); 
}); 

任何想法?

谢谢。

+0

你所说的'href'意思?对我来说,好像你在问如何使用不存在的'href'事件。你能解释你想做什么,也许粘贴一些相关的HTML? – 2010-03-08 09:08:51

回答

4

HREF得到的onclick和悬停功能,您可以

<a href="#" onclick="action(); return false;">Delete X</a> 

返回假上的onclick将防止发生与HREF浏览器默认操作=“#”意味着,即使它这只是一个链接到这个页面。

按其他的答案,你可以再我们的CSS悬停伪类的样式元素

a.delete{ 
    ... 
} 

a.delete:hover{ 
    ... 
    color:red; 
} 

对于href =“#”我会把这如果不是你可以在你提交的HTML使用下面的jQuery来添加属性

$(".btnDeleteOther").attr('href','#'); 

至于从中appares,至少当你只有一个click事件定义jQuery将返回你的点击函数返回什么,所以

点击事件返回false
$(".btnDeleteOther").click(function(){doStuff(); return false;}); 

或使用事件的preventDefault方法

$(".btnDeleteOther").click(function(event){doStuff(); event.preventDefault();}); 

看到http://api.jquery.com/click/

+0

你可以让我知道如何添加href ='#'并在使用jquery调用click事件之后返回false吗?谢谢。 – Amra 2010-03-08 11:44:24

+0

答案已经扩展。 – 2010-03-08 12:14:43

1

即使在这种情况下使用CSS,也可以使用悬停。

如果.btnDeleteOther是,你可以使用这个CSS属性的定位:

a.btnDeleteOther 
{ 
//normal style 
} 

a:hover.btnDeleteOther 
{ 
//hover style 
} 
+0

我已经有了,但如果我不添加href,它不会做悬停,但我不知道如何使用href,就好像它是单击事件来附加一个函数。 – Amra 2010-03-08 09:17:52

0
a:hover.btnDeleteOther 
{ 
    cursor: pointer; 
} 

我用这个,同时还利用onclick事件来模仿HREF的外观。

0

您可以将href设置为“#”,例如, <a href="#">The link text</a>。这会告诉浏览器不要导航到另一个页面,而是跳转到当前页面上不存在的锚点,实质上使链接无效。你可以更进一步从click事件处理程序返回false,它告诉浏览器在单击时不跟随链接。

另一种方法是处理jQuery的悬停事件和更改CSS类为该悬停在元素,例如:如果你没有一个悬停不工作:在某些浏览器

$(document).ready(function(){ 
    $(".btnDeleteOther").hover(
     function(){ $(this).addClass('deleteButtonHovered'); }, 
     function(){ $(this).removeClass('deleteButtonHovered'); } 
    ); 
});