2012-01-12 2 views
0

次のプラグインが指定されています:https://github.com/Marak/jquery.emoticon.jsjQuery関数を更新してソースを置き換え、返さない方法は?

以下は、どのように使用すると思われますか?

$.fn.emoticon = function(theText) { 
    var imagePath = "emotes/"; 
    var newText = theText; 
    for(var a in emoticons.emoticon) { 
     emoticon = emoticons.emoticon[a]; 
     for(var emote in emoticon.emotes) { 

      emote = RegExp.escape(emote); 
      newText = newText.replace(new RegExp(emote, 'gi'), '<img src="'+imagePath + emoticon.image + '" />'); 
     } 
    } 
    return newText; 
}; 

私が実行している場合:

$('body').emoticon('Hello :0 World') 

それを返します:

"Hello <img src="emotes/shock.png" /> World" 

は、実際にそれが渡された要素を置き換える持ってする方法はありますか?一致した場所を更新するときと同じですか?あなたが望む要素にちょっとしたヒントを適用するような種類のもの:$('#example-1').tipsy();

思考?ありがとう

+0

"HTMLでそう

$.fn.emoticon = function(theText) { var imagePath = "emotes/"; var newText = theText; for(var a in emoticons.emoticon) { emoticon = emoticons.emoticon[a]; for(var emote in emoticon.emotes) { emote = RegExp.escape(emote); newText = newText.replace(new RegExp(emote, 'gi'), '<img src="'+imagePath + emoticon.image + '" />'); } } return this.each(function() { $(this).html(newText); }); }; 

この文脈では、おそらく問題の要素になるだろう – jValdron

+0

しかし、私は実際に私が渡したものを置き換えるためにどのように更新できますか? – AnApprentice

+0

'$(this).replace(newElement);'おそらく? – jValdron

答えて

1

これは悪いjqueryのプラグインです。これは、以下の関数はjquery要素のhtmlを置き換えて、これを返します(jquery要素)。

<body></boby> 

返す関数につながる

$('body').emoticon('Hello :0 World'); 

を実行する$( '体')とHTMLビーイング:

<body>Hello <img src="emotes/shock.png" /> World</boby> 
+0

関数もおそらくラップする必要があります(function($){/ * function goes here * /})(jQuery); – Jeremy

関連する問題