2011-07-13 16 views
0

バックグラウンドイメージのURLを使用しているときにのみ壊れそうなこのjqueryの問題があります。私の印象は、文字のエスケープの問題のように見えますが、私は間違っている可能性があります。 http://jsfiddle.net/W4CZG/jqueryエスケープ文字の問題?

は基本的に私は、HTMLのインラインスタイルといくつかのドラッグ可能なdiv要素を持っている:ここで

iは、作業のデモ版を持っているものだ

<div class="dragme" style="background-color:#ccc;">1</div> 
<div class="dragme" style="background-image:url(images/image1.gif);">2</div> 

スクリプトでは、私は現在、以下の使用してきましたドロップ可能領域内にスパンタグを追加してスタイルを設定します。

$(this).html('<span style="' + draggable.attr('style') + '"></span>'); 

最初のdivは背景色でうまくいきます。ファイヤーバグを見ると、次のようなものが作成されます。

<span style="background-color: rgb(204, 204, 204);"></span> 

マージン、フォントなどのような他のスタイルを使用すると、それも機能します。しかし、私の問題、そしてここで私の質問は、背景画像と、生成されたスパンタグは、背景画像のインラインスタイルを取得していない、代わりにすべて台無しになる?火かき棒で私はこれを参照してください:

<span);="" image1.gif="" images="" style=""></span> 

これはcharcaterエスケープの問題ですか?さらに重要なことは、どうすればこの問題を解決できますか?

ありがとうございました!

答えて

2

あなたはあなたのためのすべてのエスケープの問題を扱うでしょう

$('<span/>', { style: draggable.attr('style') }) 

を行う必要があります。あなたのケースでは

$(this).html('<span style="' + draggable.attr('style') + '"></span>'); 

$(this).html($('<span/>', { style: draggable.attr('style') })); 
+0

なるねえDogbertは、応答やお時間のためのおかげで、私はそれを試して見てみましょう。私は自分の質問を投稿した後、問題はFFでしか発生しなかったことを認識しました(IE6でもうまくいきました、どれほど奇妙なのですか?)。確かに、私はまだjqueryを学んでいて、構文はおそらくクリーンで効率的ではありません...しかし、あなたの提案を試してみましょう、それは確かにきれいに見えます。 – tifbs

+0

ちょうどそれを試して、それは素晴らしい、ありがとう! – tifbs

関連する問題