2

http://www.henrybuilt.com/trade2/resource.php?id=100

查看上面的链接。登录: asdf, asdf

编辑:登录后单击上面链接上的竹子。谢谢。

以下代码(用于切换“弹出”窗口 (div))不会在页面上执行,但在复制并粘贴到开发面板中时会起作用。

            $(".maintypedata img").click(function() {
                console.log("test");
                if(open == false) {
                    var src = $(this).attr("src");
                    $(".popup").html("<img src='"+src+"'/>");
                    open = true;
                    $(this).addClass("selected");
                    $(".popup").slideFadeToggle(function() { 

                    });
                }
            });

我怎样才能让它从脚本运行?

4

1 回答 1

1

您显示的单击处理程序绑定到该代码运行时".maintypedata img"存在的任何元素。但是,有问题的 img 元素会在单击“Bamboo”选项后动态附加到文档中。因此,您需要在附加元素后运行该代码(这是您通过从控制台运行它所做的)或将其更改为作为委托事件处理程序工作:.click()

        $(".maintypedata").on("click", "img", function() {
            console.log("test");
            if(open == false) {
                var src = $(this).attr("src");
                $(".popup").html("<img src='"+src+"'/>");
                open = true;
                $(this).addClass("selected");
                $(".popup").slideFadeToggle(function() { 

                });
            }
        });

也就是说,将点击处理程序绑定到最初存在的元素,在这种情况下".maintypedata",但在第二个参数中指定一个选择器,.on()并且 jQuery 将仅在单击的项目与事件发生时的第二个选择匹配时运行您的处理程序。

(委托处理程序也比将同一个处理程序绑定到许多单独的元素更有效,但这只是一个额外的好处。)

于 2013-08-02T22:41:42.647 回答