現在、html5 テキスト エディター ( bootstrap-wysihtml5 ) を使用しています。「キープレス」イベント (タブ上) を使用して、テキスト エディター内で特定の単語を選択しようとしています。
これが私のテキストの例です:
<div>
My name is {{name}} and I enjoy {{programming in Rails}}.
</div>
<div>
{{Friend Name}} suggested that we get in touch to {{catch up}}.
He spoke {{highly}} about you and said that we should {{get together sometime}}.
</div>
目標: 「keypress」タブ イベントで、{{ }} 内の各単語を強調表示します。すなわち 1. タブを 1 回押すと、{{name}} が強調表示されます。2. 2 回目にタブを押すと、{{Rails でのプログラミング}} などが強調表示されます。
これが私がこれまでに実装したものです:
$('#wysihtml5').each(function(i, elem) {
$(elem).wysihtml5({
"font-styles": true,
"events": {
"focus": function() {
$('.wysihtml5-sandbox').contents().find('body').on("keydown",function(event) {
event.preventDefault();
var numLoops = _.size($(this).children());
var keyCode = event.keyCode || event.which;
if (keyCode == 9){
// loop thru all children divs
for (var i = 0; i < numLoops; i++) {
// get array of all matched items {{}}
var sentence = $($(this).children()[i]).html();
var toSwap = sentence.match(/\{{(.*?)\}}/g);
var numSwap = _.size(toSwap);
// NEED TO FIGURE OUT: How to select matched item..and move to the next one on tab
}
}
});
}
}
});
});
何かご意見は?私はこれを機能させる方法を見つけるのに2日間費やしてきました。以下は、私が見たものの参考文献です。