0

这可能只是我盯着代码太久而遗漏了一些重要内容的另一个例子。基本上,我在 WebKit 中有一个脚本,当发生 .click (jQuery) 事件时,它会用单击项目的内容填充另一个脚本。但是,由于某种原因,多次单击一个项目会导致 DOM 元素被删除。有任何想法吗?JSFiddle 与下面链接的代码示例。

这是我认为是罪魁祸首的功能:

$(".vote-divs .vote-div").click(function () {
        $(".vote-none").hide()
        $(".step-2-column-left .vote-div").each(function () {
            $(this).hide();
        });
        $("#" + $(this).attr("id") + "-s").show();

        $(".confirm-s").each(function () {
            $(this).hide();
        });

        if ($(this).attr("id") == "vote-grow") {
            $("#donation-vote-for").val("Grow");
            $("#confirm-grow-s").show();
        } else if ($(this).attr("id") == "vote-stache") {
            $("#donation-vote-for").val("Stache");
            $("#confirm-stache-s").show();
        } else if ($(this).attr("id") == "vote-shave") {
            $("#donation-vote-for").val("Shave");
            $("#confirm-shave-s").show();
        } else if ($(this).attr("id") == "vote-mutton") {
            $("#donation-vote-for").val("Mutton");
            $("#confirm-mutton-s").show();
        } else if ($(this).attr("id") == "vote-manchu") {
            $("#donation-vote-for").val("Manchu");
            $("#confirm-manchu-s").show();
        }


        console.log(event.target);
        $(".vote-none").html(event.target);

        goTo("3");
    });

JSFiddle

4

2 回答 2

0

尝试

$(".vote-none").html($(event.target).clone());

代替

$(".vote-none").html(event.target);

演示:小提琴

于 2013-04-26T06:18:09.937 回答
0

.html()需要一个字符串。您提供一个节点。当你这样做时,jQuery 会获取这个节点并将其附加到另一个元素。如果你真的想用另一个元素的内容填充一个元素,那么解决方案是

$(".vote-none").html(event.target.innerHTML);

或者

$(".vote-none").html($(this).html());

请注意,在您的情况下this等于event.target

于 2013-04-26T07:14:29.430 回答