2012-03-21 66 views
0

錨一個內聯元件內側塊元件的工作是不是由上可接受的Html,但是我有一個場景,其中我必須做出的div點擊,放置DIV在asp.net MVC 3

<div class="category-item" style="background-image:url('/Themes/DarkOrange/Content/images/@String.Format("{0}.png", item.Id)');"> 

         <h2 class="title"> 
          <a href="@Url.RouteUrl("Category", new { categoryId = item.Id, SeName = item.SeName })" title="@item.PictureModel.Title"> 
           @item.Name</a> 
         </h2> 
         <div class="picture"> 
          <a href="@Url.RouteUrl("Category", new { categoryId = item.Id, SeName = item.SeName })" title="@item.PictureModel.Title"> 
           <img style="border-width: 0px;" alt="@item.PictureModel.AlternateText" src="@item.PictureModel.ImageUrl" 
            title="@item.PictureModel.Title" /></a> 
         </div> 
        </div> 

我想把上述DIV類類別項放置一個錨標籤,其是可點擊內:

<a href="@Url.RouteUrl("Category", new { categoryId = item.Id, SeName = item.SeName })" title="@item.PictureModel.Title"></a> 

的與傳遞給它的父item.id DIV背景圖像的變化,因此,背景圖像是用於每個類別不同項目,主要目的是使可點擊的導航到提供的routeurl。 是否有可能實現這樣的目標,或者有沒有其他辦法可以實現這個目標?

任何建議或幫助將有所幫助。

+2

Div也有一個點擊事件。 – jrummell 2012-03-21 17:30:45

+1

擁有'a'標籤[HTML5中的換行塊元素](http://www.w3.org/TR/html5/text-level-semantics.html#the-a-element)是完全有效的。在div上放置導航點擊處理程序對通過鍵盤導航的用戶非常不友好。 – steveax 2012-03-21 17:42:52

回答

1

你可以添加一個點擊處理程序到你的div。

設置的URL在data屬性:

​​

然後引用它在點擊處理程序:

$(".category-item").click(function() 
{ 
    window.location = $(this).data("url"); 
    return false; 
}); 

更新

正如在評論中提到的,可點擊的div不可訪問,所以你還應該包括一個正常的錨點。

<div class="category-item"> 
    @Html.ActionLink("Category", new { categoryId = item.Id, SeName = item.SeName }) 
</div> 

然後,您可以更改點擊處理程序使用錨的href而不是data屬性。

$(".category-item").click(function() 
{ 
    window.location = $(this).find("a").attr("href"); 
    return false; 
}); 
+2

請不要這樣做。那些使用鍵盤導航的人很難進入。 – steveax 2012-03-21 17:37:54

+0

好點。如果你這樣做,確保在div中包含一個常規錨點。我又增加了一個例子。 – jrummell 2012-03-21 17:40:13

0

this question的答案顯示瞭如何在圖像周圍創建ActionLink。你可以使用類似的方法...