2012-02-17 47 views
1

我發現這個腳本可以在鼠標移出時展開圖片,但是當點擊圖片時,在新頁面中打開圖片。修改jquery在點擊時不打開圖片

我想修改腳本,因爲我不想在單擊時在新頁面中打開該圖像。

如何修改腳本以便在新頁面中不打開照片?

這是腳本:

this.imagePreview = function(){ 
    /* CONFIG */ 

     xOffset = 10; 
     yOffset = 30; 

     // these 2 variable determine popup's distance from the cursor 
     // you might want to adjust to get the right result 

    /* END CONFIG */ 
    $("a.preview").hover(function(e){ 
     this.t = this.title; 
     this.title = "";  
     var c = (this.t != "") ? "<br/>" + this.t : ""; 
     $("body").append("<p id='preview'><img src='"+ this.href +"' alt='Image preview' />"+ c +"</p>");         
     $("#preview") 
      .css("top",(e.pageY - xOffset) + "px") 
      .css("left",(e.pageX + yOffset) + "px") 
      .fadeIn("fast");       
    }, 
    function(){ 
     this.title = this.t;  
     $("#preview").remove(); 
    }); 
    $("a.preview").mousemove(function(e){ 
     $("#preview") 
      .css("top",(e.pageY - xOffset) + "px") 
      .css("left",(e.pageX + yOffset) + "px"); 
    });   
}; 


// starting the script on page load 
$(document).ready(function(){ 
    imagePreview(); 
}); 

要查看演示:http://cssglobe.com/lab/tooltip/02/

感謝

問候

回答

4
$('a.preview').click({ 
    function (event) { 
     event.preventDefault(); 
    }); 

讓所有的預覽在同一位置出現,改變座標這些行

.css("top",(e.pageY - xOffset) + "px") 
.css("left",(e.pageX + yOffset) + "px") 

寫的座標,你在地方的e.pageY - xOffsete.pageX + yOffset

+0

有可能所有的照片在頁面的相同位置展開?而不是與鼠標的相對位置? – 2012-02-17 12:48:56

+0

查看我更新的答案! – 2012-02-17 12:50:02

2

.preventDefault()功能會爲你做到這一點:

$("a.preview").click(function(event) { 
    event.preventDefault(); 
}); 
+0

阿好,謝謝!希望有可能所有的照片在頁面的相同位置展開?而不是與鼠標的相對位置? – 2012-02-17 12:47:36

+0

是的,但你應該在這個問題上創建一個新的問題,而不是混合這個問題。保持每個問題儘可能具體=) – Niklas 2012-02-17 12:49:25