2011-10-18 75 views
0

我得到圖像列表並將其顯示在剃鬚刀頁面上。每個圖像都是「超鏈接」。現在我有一個問題。我不想通過使用'jquery.BlockUI'將圖像顯示爲模式視圖。但我不知道如何發送圖像的id來打開點擊的圖像。有什麼建議?如何獲取顯示爲超鏈接的圖像的ID

@foreach (var m in Model) 
    { 
     string imagePath = path tp the image; 
     <div style="background: #f5f5f5; border: 1px solid #cccccc; margin-bottom: 3px; margin-right: 3px; 
      padding: 3px; width: 300px; height: 100px; float: left; overflow: hidden;"> 
      <div style="width: 105px; float: left;"> 
       <a onclick="showImageModal()"> <img [email protected]/> </a> 
      </div> 
... 

回答

2

有一個容器,如#圖像,彈出窗口,然後

$('#image-popups a').click(function(e) { 

    e.preventDefault(); 

    $.blockUI({ 
     message: $(this).children('img'), 
     css: { 
      top: ($(window).height() - 400) /2 + 'px', 
      left: ($(window).width() - 400) /2 + 'px', 
      width: '400px' 
     } 
    }); 

    setTimeout($.unblockUI, 2000); 
    }); 

然後剛纔有

<a [email protected]> <img [email protected]/> </a> 

當JS失敗時,它會鏈接到圖像,否則執行BlockUI

+0

當我點擊圖像時添加此代碼時,它只是作爲新頁面打開。我嘗試調試,它永遠不會在這個jQuery代碼?

1110

+0

我忘了發送更新。我使用'.live ...','$('#divid')。live('click',function(e)...')來完成它,它可能是必需的,因爲我閱讀並創建了圖像dinamicly。 – 1110

+0

你是對的:) –

0

您不應該使用內聯事件處理程序。 既然你用jQuery標記了這個問題,這是如何用jQuery來完成的。

首先改變

<a onclick="showImageModal()"> <img [email protected]/> </a> 

<a class="image_modal"><img src="@imagePath" /></a> 

然後使用這個jQuery的:

$('.image_modal').click(function(e){ 

    e.preventDefault(); // prevent the hyperlink from occuring 

    showImageModal($(this).find('img').attr('src')); 

}); 

在這裏,我假設你showImageModal功能將接受一個包含圖片src的參數。

另請注意,如果您的<a>沒有href屬性,它將不會顯示指針光標。所以考慮增加href="@imagePath"。 (這也爲人們提供了一個備用沒有JavaScript)的