【问题标题】:How do i get the variable [i] of my loop without making a function in my loop "jshint" [duplicate]如何在我的循环“jshint”中不创建函数的情况下获取循环的变量 [i] [重复]
【发布时间】:2017-07-19 09:01:19
【问题描述】:

我需要一些关于网站的脚本 javascript 的帮助,我认为这有点明显。 让我解释一下,我有一个画廊,一个循环,每次点击画廊的图像,点击的图像将移动到另一个暂时隐藏的 div 中。 所以在点击时我调用了 2 个函数,第一个显示 div,第二个通过点击图像的 href 更改隐藏 div 中图像的 de src。

   function OnClickGallery(){ 

      var Galerie = document.getElementById('GPNPHide'), 
          liens = Galerie.getElementsByTagName('a'),
          imgkids = Galerie.getElementsByTagName('img'),
          ImageBig = document.getElementById('ImageFull'); 

        for (var i = 0 ; i < liens.length ; ++i) { 
             liens[i].onclick = function(){ 

                  GalerieVueShowToggle(); 
                  ImageBig.src = this.href; 
                  return false; 
               }; 
        } 
  } 
  window.onload=OnClickGallery; 

一切都运行良好,直到我试图通过在循环外创建我的函数 onClick 并在循环中调用我的函数但在我的 onClick 函数中,我显然是避免 jshint 错误“不要在循环内创建函数”此处未定义,我被困在这里,如何在 onClick 函数中获取循环的 i ?

   function onClick() {
        "use strict";
        var ImageBig = document.getElementById('ImageFull'),
            Galerie = document.getElementById('GPNPHide'),
            liens = Galerie.getElementsByTagName('a');

        ImageBig.src = liens[i].href;
        return false;
    }


    function OnClickGallery() {
        "use strict";
        var Galerie = document.getElementById('GPNPHide'),
            liens = Galerie.getElementsByTagName('a'),
            imgkids = Galerie.getElementsByTagName('img'),
            ImageBig = document.getElementById('ImageFull'),
            i;

       for (i = 0; i < liens.length; i += 1) {
            liens[i].onclick = galerieVueShowToggle;
            liens[i].onclick = onClick;
        }

    window.onload = OnClickGallery;

【问题讨论】:

  • 对于初学者,我会使用addEventListener 而不是onclick。为了能够帮助您,请提供一个有效的 sn-p(HTML, CSS too)
  • “this”引用不是持久的。你还是应该把这个传下去。将函数function onClick()改写为function onClick(this),修改liens[i].onclick = onClick;的onclick声明到留置权[i].onclick = function(){ onClick(this) };

标签: javascript html


【解决方案1】:

将“i”的值传递给 onClick 函数,如下所示:-

onClick(i)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    相关资源
    最近更新 更多