スクリプトは jsfiddle にあります: CODE
現時点での動作: URL フィールド テキストエリアと入力の 2 種類のフォームであり、これらのフィールド内のテキストをリンクに変換してクリックできるようにします。
仕組み:リンクの横をクリックすると、リンクを編集するか、リンクをダブルクリックできます。リンクを 1 回クリックすると、そのページに移動します。
最後の更新:.trigger('blur');
最後の行に を追加しました。それを行う前は、テキスト領域に 1 つのマージされたリンクのようなリンクが表示されていたため、たとえば:が表示されていました。この最後の更新を追加した後、textera の分割も機能しますテキストエリアの編集時だけでなく、ページのロード(最後の更新なしで機能していましたが、テキストエリアを編集してリンクの間にスペースを入れた場合のみでした。テキストエリアのフォーマットが1 つのリンクの前の行として既に送信されます)。test.com
test2.com
test.comtest2.com
私の問題:この最後の更新を行った後、ダブルクリックが台無しになり、リンクを編集できるはずで、ワンクリックしない限りそのページに移動しないはずですが、今では編集して1秒ほどで移動しますそのページにも。そのページに移動せずに編集するためだけにダブルクリックしたい。ワンクリックで移動できます。
よろしくお願いします!
コードもここにあります:
$('.a0 a').click(function(){
var href = $(this).attr('href');
// Redirect only after 500 milliseconds
if (!$(this).data('timer')) {
$(this).data('timer', setTimeout(function () {
window.open(href, '_blank')
}, 500));
}
return false; // Prevent default action (redirecting)});
$('.a0').dblclick(function(){
clearTimeout($(this).find('a').data('timer'));
$(this).find('a').data('timer', null);
$(this).parent().find('input,textarea').val($(this).find('a').text()).show().focus();
$(this).hide();})
$('.a0').click(function(){
$(this).parent().find('input,textarea').val($.map($(this).find('a'),function(el){return $(el).text();}).join(" ")).show().focus();
$(this).hide();})
$('#url0, #url1,#url4').each(
function(index, element){
$(element).blur(function(){
var vals = this.value.split(/\s+/),
$container = $(this).hide().prev().show().empty();
$.each(vals, function(i, val) {
if (i > 0) $("<span><br /></span>").appendTo($container);
$("<a />").html(val).attr('href',/^https?:\/\//.test(val) ? val : 'http://' + val).appendTo($container);;
}); })
}).trigger('blur');