javascript - img.click() 函数数组

标签 javascript jquery

我有两个图像,image_0 和 image_1,当单击每个图像时,我希望它显示一个警报,说明该图像的 ID。为此,我创建了一个数组来存储这些函数(这是必要的,因为我之前的问题: https://stackoverflow.com/questions/41003122/looping-in-jquery-only-remembers-last-iteration?noredirect=1#comment69215730_41003122 )。

下面的代码显示了我的尝试。但是,当我单击任一图像时,什么也没有发生。为什么?

HTML:

<img id="image_0" src="http://placehold.it/350x150" width="300">
<img id="image_1" src="http://placehold.it/350x150" width="300">

Javascript:

$(document).ready(function()
{
    // The number of images shown
    num_images = 2

    // List of functions for each thumbnail click.
    var image_click_functions = new Array(num_images);

    // Define the function for when the thumbnail is clicked
    function CreateImageClickFunction(image_id)
    {
        return function() { alert(image_id) };
    }

    // Loop through all images, and define the click functions
    for (i = 0; i < num_images; i++)
    {
        image_click_functions[i] = CreateImageClickFunction(i);
        image_id = "#image_" + i;
        $(image_id).click(function()
        {
            image_click_functions[i];
        });
    }
});

最佳答案

添加一个公共(public)类,创建一个处理程序,并使用this的实例

<img class="image" id="image_0" src="http://placehold.it/350x150" width="300">
<img class="image" id="image_1" src="http://placehold.it/350x150" width="300">

JS:

$(".image").click(function() { alert(this.id) });

关于javascript - img.click() 函数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41019131/

相关文章:

javascript - 私有(private)-公共(public)变量;

javascript - 在动态创建的元素中带有参数的事件处理程序

javascript - 找不到命令

javascript - VS Code 能否在文件重命名/移动时自动更新 JavaScript 和 TypeScript 导入路径?

javascript - 何时何地不成功: value executes in jQuery Ajax method?( header 位置未更改)

javascript - 在加载 div 之前触发事件

javascript - iframe 父 url

javascript - 在 JavaScript 中捕获 Access-Control-Allow-Origin 错误

javascript - Web Worker 是否会限制 setTimeout()/setInterval()?

jquery - Twitter Bootstrap 3 - 导航折叠中的下拉菜单