动态地将现有画布添加到div

时间:2014-11-27 10:45:04

标签: javascript jquery html canvas

我有一个问题,即通过jQuery动态地将现有画布添加到div。此外,我尝试了许多选项来追加这个,但任何一个都有效。

这是我的代码:

<div class="a"> 
    <div id="b"></div> 
    <div id="c" class="c"> 
    </div> 
</div>

jQuery的:

$(document).ready(function()
{
    if($('.myDivIfLoad').text().length >= 0)
    {
        //$('canvas[class="canvasClass"]').appendTo($('.c')); // doesn't work
        //$('canvas[class="canvasClass"]').append($('.c')); // doesn't work
        //var canv= $('canvas[class="canvasClass"]'); //doesn't work
        //document.getElementById('c').appendChild(canv)        // doesn't work
        $('canvas.canvasClass').appendTo('.c')
        $(function()
        { 
            $(".a").hover(function()
            { 
                $(".a").stop(true, false).animate({right: "0" }, 800, 'easeOutQuint' ); 
            }, function()
            { 
                $(".a").stop(true, false).animate({right: "-245" }, 800, 'easeInQuint' ); 
            },1000); 
        }); 
    }
});

如果有人能帮助我,我将非常感激!

修改

如果它取决于我的代码我基于本教程:http://w3lessons.info/demo/sliding-facebook-likebox/

2 个答案:

答案 0 :(得分:1)

四件事:

  1. 在CSS中,标识符id值,类名称)cannot start with a digit,因此选择器.3无效(原样)选择器#1等。) (你在下面说过,那些不是真正的id和类,而你真正的那些不要以数字开头。)

    考虑用一个字母开始你的id和类名,这样你的选择器才有效。

  2. 您的appendTo,而不是append,是正确的方法,只是问题选择器。

  3. canvas[class="canvasClass"]查找canvas 完全canvasClass没有其他人。它匹配<canvas class="canvasClass">..</canvas>"但不匹配<canvas class="foo canvasClass">..</canvas>或类似。按类选择的最佳方法是类选择器canvas.canvasClass,它将匹配该类的任何元素(即使它还有其他元素)。

  4. 这是可疑的:$('.myDivIfLoad').val().length。该课程表明它是div,但div没有。他们有内容。您可能需要.text().length.html().length.children().length.contents().length,具体取决于您对该行的目标是什么。

答案 1 :(得分:0)

您可以使用appendTo方法(而不是append)将其添加为此类:

$('canvas[class="canvasClass"]').appendTo('.c');

或更好

$('canvas.canvasClass').appendTo('.c');

var canv = $('canvas.canvasClass');
$('.c').append(canv);

或者即使你真的想要

var canv = $('canvas.canvasClass');
document.getElementById('c').appendChild(canv[0]);