Javascript jquery传递互函数上的参数

Javascript jquery传递互函数上的参数,javascript,jquery,Javascript,Jquery,我在Jquery中有两个函数,可以在单击时将div更改为textarea,并在模糊时将其设置为div。我需要保存div的id,并在嵌套函数中使用它。如何在这两个函数之间传递id? 这是我的代码,它将thid检测为事件 function divClicked(id) { console.log("click"); var divHtml = $(this).html(); var editableText = $("<textarea />"); editableTex

我在Jquery中有两个函数,可以在单击时将
div
更改为
textarea
,并在模糊时将其设置为
div
。我需要保存
div的
id
,并在嵌套函数中使用它。如何在这两个函数之间传递
id
? 这是我的代码,它将th
id
检测为事件

function divClicked(id) {
  console.log("click");
  var divHtml = $(this).html();
  var editableText = $("<textarea />");
  editableText.val(divHtml);
  $(this).replaceWith(editableText);
  editableText.focus();
  // setup the blur event for this new textarea
  var iden = $(this).attr("id");
  editableText.blur(id, editableTextBlurred);
}

function editableTextBlurred(id) {
  console.log("blur");
  var html = $(this).val();
  var viewableText = $("<div>");
  viewableText.html(html);
  $(this).replaceWith(viewableText);
  var descr = viewableText.html();
  // setup the click event for this new div
  cool_function(id, descr);
  $(viewableText).click(id, divClicked);
}
函数(id){
控制台日志(“单击”);
var divHtml=$(this.html();
var editableText=$(“”);
editableText.val(divHtml);
$(this).replacetwith(editableText);
editableText.focus();
//为此新文本区域设置模糊事件
var iden=$(this.attr(“id”);
editableText.blur(id,EditableTextBluded);
}
函数EditableTextFuzzle(id){
控制台日志(“模糊”);
var html=$(this.val();
变量viewableText=$(“”);
html(html);
$(this).replacetwith(可视文本);
var descr=viewableText.html();
//设置此新div的单击事件
冷却功能(id、descr);
$(可视文本)。单击(id,单击);
}
更好的方法是使用委托事件处理程序在类型之间切换元素,如下所示:

$(文档)。在('click','div.switch',function()上{
变量$textarea=$('',{
类:'开关',
html:$(this.html(),
id:这个是
});
$(this).替换为($textarea);
$textarea.focus();
}).on('blur','textarea.switch',function(){
变量$div=$(''{
类:'开关',
html:this.value,
id:这个是
});
美元(本)。替换为($div);
cool_函数(this.id,this.value);
});
函数cool\u函数(id、html){
//你的逻辑在这里。。。
log(id,html);
}

Foobar

嘶嘶作响
为什么不把id放在文本区?然后,在这两种情况下,DIV和TeXTARA相互替换的ID被设置为WAS/WASTHEN,您应该考虑委托绑定,这样您就不必再在SWAP上重新创建绑定。每个<代码> div <代码>都有一个可变ID。我不能给它们指定一个ID,因为我的PHP代码创建了它。没有特定的ID。
var iden=$(this.attr(“id”)
是php给它的id<代码>editableText.attr('id',iden)您就完成了