2010-03-08 61 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'); } 
    ); 
});