首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我该怎么做才能让这段代码按我想要的那样工作呢?

我该怎么做才能让这段代码按我想要的那样工作呢?
EN

Stack Overflow用户
提问于 2014-05-20 18:17:15
回答 1查看 42关注 0票数 0

我做了一个应用程序,向用户展示一堆图像,用户点击一张图像,然后根据该图像显示另一张图像,例如

代码语言:javascript
运行
复制
male->body_type_a->below_18->recommended_a
male->body_type_b->below_18->recommended_b
male->body_type_c->below_18->recommended_c
male->body_type_a->above_18->recommended_a
male->body_type_b->above_18->recommended_b
male->body_type_c->above_18->recommended_c
male->body_type_a->above_35->recommended_a
male->body_type_b->above_35->recommended_b
male->body_type_c->above_35->recommended_c

类似于女性,现在我粘贴了这段代码,如何知道用户点击了哪个图像,以便在最后一步之后,我可以根据用户点击的内容来获取url,我无法获得用户点击的图像,我已经将代码粘贴到jsfiddle中单击此处到view,对不起,代码要大得多

EN

回答 1

Stack Overflow用户

发布于 2014-05-20 19:31:05

由于选择类型相似,您可以将这三个函数折射为一个,并确定单击的图像所采取的路线。

代码语言:javascript
运行
复制
var IMG_MALE = "http://placehold.it/50x50/343434&text=Male";
var IMG_FEMALE = "http://placehold.it/50x50/dedede&text=Female";

var IMG_ECTO = "http://placehold.it/50x50/343434&text=Ecto";
var IMG_ENDO = "http://placehold.it/50x50/343434&text=Endo";
var IMG_MESO = "http://placehold.it/50x50/343434&text=Meso";

var IMG_AGE_18 = "http://placehold.it/50x50/343434&text=-18";
var IMG_AGE_1835 = "http://placehold.it/50x50/343434&text=18-35";
var IMG_AGE_35 = "http://placehold.it/50x50/343434&text=35+";

var IMG_PROD_BULK = "http://placehold.it/50x50/343434&text=Bulk";
var IMG_PROD_FIT = "http://placehold.it/50x50/343434&text=Fit";
var IMG_PROD_MUSCLE = "http://placehold.it/50x50/343434&text=Muscle";

$(document).ready(function () {
    var state = 0;
    var link = new Array(4);
    var male = "";

    // using images that have id starting with '#img' can narrow if required
    $("img").click(function (e) {
        $("img").removeClass('animated fadeIn');

        var src = $(e.target).attr("src");

        switch (src) {
            case IMG_MALE:
                link[0] = src;
                $('#runtime-text').text("SELECT YOUR BODY TYPE :");
                $('#img1').attr("src", IMG_ECTO);
                $('#img2').attr("src", IMG_ENDO);
                $('#img3').attr("src", IMG_MESO);
                break;

            case IMG_ECTO:
            case IMG_ENDO:
            case IMG_MESO:
                link[1] = src;
                $('#runtime-text').text("SELECT YOUR AGE :");
                $('#img1').attr("src", IMG_AGE_18);
                $('#img2').attr("src", IMG_AGE_1835);
                $('#img3').attr("src", IMG_AGE_35);
                break;

            case IMG_AGE_18:
            case IMG_AGE_1835:
            case IMG_AGE_35:
                link[2] = src;
                $('#runtime-text').text("SELECT PRODUCT FOR :");
                $('#img1').attr("src", IMG_PROD_BULK);
                $('#img2').attr("src", IMG_PROD_FIT);
                $('#img3').attr("src", IMG_PROD_MUSCLE);
                break;

            case IMG_PROD_BULK:
            case IMG_PROD_FIT:
            case IMG_PROD_MUSCLE:
                link[3] = src;
                alert("User selected " + link[0] + " -> " + link[1] + " -> " + link[2] + " -> " + link[3]);
                $('#btn1').click();
                break;

            default:
                break;
        }

        $("img").addClass('animated fadeIn');
    })

    $('#btn1').click(function () {
        console.log("btn");
        $('#img1').attr("src", IMG_MALE);
        $('#img2').attr("src", IMG_FEMALE);
        $('#img3').attr("src", "");

        $("img").addClass('animated fadeIn');
    })
});

上面的代码使用了一个通用的img选择器,您可以通过使用正确的类等切换到更具体的选择器。结果当前会被提醒到屏幕,但它可以用来确定用户所走的路径。The jsFiddle at - http://jsfiddle.net/sRD5r/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23757033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档