Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE忽略添加的onclick属性_Javascript_Jquery - Fatal编程技术网

Javascript IE忽略添加的onclick属性

Javascript IE忽略添加的onclick属性,javascript,jquery,Javascript,Jquery,下面的Jquery代码在firefox、Safari、Opera上运行正常,但在IE上运行不正常。在阅读了很多关于它的内容后,我有点知道为什么IE中不能使用它,但我不知道如何修复它。 我的理解是(我认为)这个方法将在IE中分配一个属性“onclick”,而不是一个事件方法。因此,它不会在IE中激发,而href会激发,在本例中为“#”,这正是正在发生的事情。添加onclick事件的正确方法是什么。下面显示了更多的javascript代码,但我认为这与问题无关 <a id="product_p

下面的Jquery代码在firefox、Safari、Opera上运行正常,但在IE上运行不正常。在阅读了很多关于它的内容后,我有点知道为什么IE中不能使用它,但我不知道如何修复它。 我的理解是(我认为)这个方法将在IE中分配一个属性“onclick”,而不是一个事件方法。因此,它不会在IE中激发,而href会激发,在本例中为“#”,这正是正在发生的事情。添加onclick事件的正确方法是什么。下面显示了更多的javascript代码,但我认为这与问题无关

<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});
});