2011-10-23 16 views
1

本当に必要なのは、新しく作成したdivをクリックし、画面上の他の部分をクリックしてdivを移動できるようにすることです。Jqueryを使って作成したdivを移動する

私のコード:。

$(function() { 
    $('a#linkA').click(function() { 
     $('#container') 
     .prepend("<div id='cloneA' onclick='moveA();'> <img src='A.gif' alt='A' </div>") 
    }); 
}); 

function moveA(event) { 
    var posx = event.pageX; //get the mouse's x coord 
    var posy = event.pageY; //get the mouse's y coord 
    document.getElementById("cloneA").style.left = posx; 
    document.getElementById("cloneA").style.top = posy; 

私はFirefoxでこれを実行し、放火犯を使用する場合、それは「のdocument.getElementById(」クロニィ」)と言うstyle.leftが定義されていない...なぜそれがあると私は私がやりたい、これを取得するために何ができるのでしょうか? ありがとう!

あなたが持っている
+0

位置を追加してみてください。絶対。 'cloneA'の場合は 'px'も追加 – Dev

+1

'$( '#cloneA')を使用しない理由は何ですか?click()' moveA()関数を追加するには? –

答えて

0

さまざまな問題のカップル。一つは、あなたがmoveA(event)にイベントを渡していない。また、あなたが設定したときにlefttopに設定すると、lefttopを()に設定した値にディメンションタイプを追加する必要があります,%)。 lefttopを設定するには、#moveAをその位置に移動させるにはposition: absoluteまたはposition: relativeが必要です。

さらに、複数の#moveA imgを追加する場合は、その要素のID属性に固有の番号を実際に追加する必要があります。

$(function() { 
    var $container = $('#container'); 
    $container.data('count', 0); 
    $('a#linkA').click(function() { 
     var img = 'http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=64&'; 
     var id = "cloneA"+$container.data('count'); 
     $container.prepend("<div id='"+id+"'><img src='"+img+"' alt='A'/></div>"); 
     $container.data('count',$container.data('count')+1); 
     $('#'+id).click(function(event){ 
      moveA(event); 
     }); 
    }); 
}); 

function moveA(event) { 
    var posx = event.pageX; //get the mouse's x coord 
    var posy = event.pageY; //get the mouse's y coord 
    var div = event.currentTarget.id; 
    document.getElementById(div).style.position = 'relative'; 
    document.getElementById(div).style.left = posx+'px'; 
    document.getElementById(div).style.top = posy+'px'; 
} 

http://jsfiddle.net/WkkCE/

+0

おお、そうです。これは非常に役に立ちます、ありがとう! –

+0

私の最後の編集を見る私はちょうど追加しました。また、質問に答えると思われる場合は、upv​​oteと答えとしてマークしてください。 ':)' –

+0

あなたの編集も非常に役に立ちます:D 私はupvoteをしますが、明らかに "15評判"を持たなければなりません。 –

関連する問題