Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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 如何替换这些onclick="&引用;具有更清晰jQuery样式代码的属性?_Javascript_Jquery_Onclick - Fatal编程技术网

Javascript 如何替换这些onclick="&引用;具有更清晰jQuery样式代码的属性?

Javascript 如何替换这些onclick="&引用;具有更清晰jQuery样式代码的属性?,javascript,jquery,onclick,Javascript,Jquery,Onclick,我有一些像这样的代码 <img src="..." width="100" height="100" alt="" onclick="FlipImg(1234)" /> $("img").click(FlipImg(<id from somewhere?>)); 但是,我不知道在哪里存储我需要传递给代码的id(title已经用于包含图像的标题,而id已经用于其他内容) 有谁能建议一种方法,将我的onclick代码从html中提取出来,放到它所属的javascript文

我有一些像这样的代码

<img src="..." width="100" height="100" alt="" onclick="FlipImg(1234)" />
$("img").click(FlipImg(<id from somewhere?>));
但是,我不知道在哪里存储我需要传递给代码的id(title已经用于包含图像的标题,而id已经用于其他内容)

有谁能建议一种方法,将我的onclick代码从html中提取出来,放到它所属的javascript文件中

$("img").click(function() {
    FlipImg($(this).attr('class'));
});
您可以这样做,并将ID存储在图像的ID标记中。要成为有效的HTML,IDs不能以数字开头,所以在它前面加上一些东西

编辑:我遗漏了部分问题

<img src="..." width="100" height="100" alt="" class="img1234" />

不管我理解你的问题,我的解决办法是

html

   <img src="..." width="100" height="100" id="1234" />
尝试:

rel=“1234”/>

在jQuery中:

$(“img”)。单击(函数(){ FlipImg($(this.attr(“rel”)); });


它应该和这里的其他答案一样有效,我建议在文档中循环使用另一个属性,并使用jQuery提取值。您可以使用哪一个取决于页面
doctype
,以及您希望遵循该doctype规范的程度。如果您不关心doctype,那么我看到的关于这个问题的任何答案都可以。如果你真的在乎,你的选择就很少了:

  • 您可以向图像中添加一个类:
  • 您可以为此图像添加标题:
  • 您可以向图像url添加哈希:
    />
  • 您可以将图像包装在锚定中,但稍后会取消单击:
  • 只有当您有一个有效的页面来处理此类请求时,选项4才是一个选项。它比所有这些解决方案都好,因为它仍然允许关闭JS的用户查看您的内容。一些人对选项1非常恼火,因为他们认为它会用行为污染演示文稿。我完全明白他们的观点,但这是我个人的选择


    添加自定义标记肯定是一种选择,但如果您真的非常关心验证,则需要生成自己的DTD

    我猜您的问题是关于将代码移出HTML。 正如Alin所建议的,您可以添加一个额外的属性。然后在js中,循环遍历所有img标记,找出标记上是否存在这个属性,然后将onclick绑定到它。
    我现在正在学习jquery,所以不会写代码。如果有人可以把它放在这里,请放在这里。

    jquery id
    不是有效的html属性,在其他浏览器上可能会失败。
       <img src="..." width="100" height="100" id="1234" />
    
    jQuery('img').bind('click',function(e){
            FlipImg(jQuery(e.target).attr('id'));
          });