Javascript IE忽略添加的onclick属性
下面的Jquery代码在firefox、Safari、Opera上运行正常,但在IE上运行不正常。在阅读了很多关于它的内容后,我有点知道为什么IE中不能使用它,但我不知道如何修复它。 我的理解是(我认为)这个方法将在IE中分配一个属性“onclick”,而不是一个事件方法。因此,它不会在IE中激发,而href会激发,在本例中为“#”,这正是正在发生的事情。添加onclick事件的正确方法是什么。下面显示了更多的javascript代码,但我认为这与问题无关Javascript IE忽略添加的onclick属性,javascript,jquery,Javascript,Jquery,下面的Jquery代码在firefox、Safari、Opera上运行正常,但在IE上运行不正常。在阅读了很多关于它的内容后,我有点知道为什么IE中不能使用它,但我不知道如何修复它。 我的理解是(我认为)这个方法将在IE中分配一个属性“onclick”,而不是一个事件方法。因此,它不会在IE中激发,而href会激发,在本例中为“#”,这正是正在发生的事情。添加onclick事件的正确方法是什么。下面显示了更多的javascript代码,但我认为这与问题无关 <a id="product_p
<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', '#');
var全局\u URL\u编码\u当前\u产品代码;
var全局配置文件夹;
var全局\当前\产品代码;
var titleattr=$(“产品照片缩放url”).attr(“标题”);
var picurl='tb\u show(titleattr,\'/PhotoDetails.asp?ShowDESC=N&ProductCode=\'+global\u URL\u Encode\u Current\u ProductCode+\'&tb\u iframe=true&height=600&width=520\');返回false;'
$(“产品照片缩放url”).attr('onclick',picurl);
$(“产品照片缩放url”).attr('href',';
$(“产品照片缩放2”).attr('onclick',picurl);
$(“a#产品#照片(缩放)url2”).attr('href',';
您可以去掉
var picurl=…
。请注意,picurl
现在是一个函数,而不是一个代码字符串。您使用的是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;
});
//...
请注意,我们使用的是函数,而不是字符串作为事件处理程序
看看:
$("a#product_photo_zoom_url").click(picurl);
确保将代码包装在ready
处理程序中。所以应该是这样的:
$(function(){
$("a#product_photo_zoom_url").click(picurl});
});
嗯,我是一个核心,这就是为什么我在这里,语法没有真正意义。不管picurl是函数还是字符串(如OP中),它都不会工作。@Matthew Flaschen:你是对的,我忘了我已经在处理一个更新的函数。这个函数在功能上也可以工作,但另一个似乎更适合。谢谢你的课!!!我选择使用这种方法是因为我可以随意调用picurl函数。谢谢
$(function(){
$("a#product_photo_zoom_url").click(picurl});
});