2010-06-17 55 views
0

下面的jquery代碼適用於firefox,Safari,Opera,但不適用於IE。我知道爲什麼在閱讀了很多關於它後IE不能正常工作,但我不知道如何解決它。 我的理解(我認爲)是這種方法將在IE中分配一個「onclick」屬性而不是事件方法。因此它不會在IE中觸發,並且href會觸發,而在這種情況下是「#」,這正是發生的事情。什麼是添加onclick事件的正確方法。顯示的代碼下方有更多的JavaScript代碼,但我認爲它與該問題無關。IE忽略添加的onclick屬性

<a id="product_photo_zoom_url" href="/PhotoGallery.asp?ProductCode=9857%2D116%2D003" 
title="9857-116-003 Ignition box"><img id="product_photo" 
src="/v/vspfiles/photos/9857-116-003-2T.jpg" border="0" 
alt="9857-116-003 Ignition box" /></a> <br /><a id="product_photo_zoom_url2" href="/PhotoGallery.asp?ProductCode=9857%2D116%2D003" 
title="9857-116-003 Ignition box"> 
<img src="/v/vspfiles/templates/100/images/buttons/btn_largerphoto.gif" border="0"></a> 





var global_URL_Encode_Current_ProductCode; 
var global_Config_ProductPhotosFolder; 
var global_Current_ProductCode; 

var titleattr = $("a#product_photo_zoom_url").attr("title"); 
var picurl='tb_show(titleattr, \'/PhotoDetails.asp?ShowDESC=N&ProductCode=\' + global_URL_Encode_Current_ProductCode + \'&TB_iframe=true&height=600&width=520\');return false;' 

$("a#product_photo_zoom_url").attr('onclick', picurl); 
$("a#product_photo_zoom_url").attr('href', '#'); 

$("a#product_photo_zoom_url2").attr('onclick', picurl); 
$("a#product_photo_zoom_url2").attr('href', '#'); 
+0

好我是一個結點這就是爲什麼我在這裏,THX – user357034 2010-06-17 04:26:59

回答

3
function picurl() 
{ 
    tb_show(titleattr, '/PhotoDetails.asp?ShowDESC=N&ProductCode=' 
+ global_URL_Encode_Current_ProductCode 
+ '&TB_iframe=true&height=600&width=520'); 
    return false; 
} 

$("a#product_photo_zoom_url").click(picurl); 

可以擺脫var picurl = ...的。請注意,picurl現在是一個函數,而不是一串代碼。

+0

我選擇使用此方法,因爲我可以隨意調用picurl功能。謝謝!!!! – user357034 2010-06-17 05:42:29

3

您正在使用jQuery,沒有理由不使用它是跨瀏覽器的事件處理抽象:

//... 
$("a#product_photo_zoom_url").click(function() { 
    tb_show(titleattr, '/PhotoDetails.asp?ShowDESC=N&ProductCode=' + 
        global_URL_Encode_Current_ProductCode + 
        '&TB_iframe=true&height=600&width=520'); 
    return false; 
}); 
//... 

請注意,我們使用的是功能,而不是一個字符串作爲事件處理程序。

給看看到:

+0

這個功能上起作用,但另一個似乎適合一點點。感謝您的教訓! – user357034 2010-06-17 05:41:43

1

嘗試使用:

$("a#product_photo_zoom_url").click(picurl); 

確保你包你的代碼ready處理。 SOT它應該是這樣的:

$(function(){ 
    $("a#product_photo_zoom_url").click(picurl}); 
}); 
+1

該語法沒有意義。無論picurl是一個函數還是一個字符串(就像在OP中),它都不起作用。 – 2010-06-17 04:29:03

+0

@Matthew Flaschen:你是對的,我忘記了我已經在處理一個函數,已經更新了。 – Sarfraz 2010-06-17 04:33:16