2010-06-17 49 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