Javascript 当焦点不在div中时,需要保存div的内容

Javascript 当焦点不在div中时,需要保存div的内容,javascript,c#,jquery,html,asp.net,Javascript,C#,Jquery,Html,Asp.net,目前有两个div(也可以是任意数字),所以如果我将鼠标指针从一个div移动到另一个div,那么在第一个div中写入的内容都应该保存(我有相应的函数)。我的问题是,当我从一个俯冲移动到另一个俯冲时,jquery函数没有被调用。所以我尝试了onblur函数、onmouseleave函数等,但它不起作用,只在第一次加载时起作用。这是因为我在动态绑定中添加函数的方式吗?请任何人帮忙 function createNewStickyNote() { i++; var row = $("&l

目前有两个div(也可以是任意数字),所以如果我将鼠标指针从一个div移动到另一个div,那么在第一个div中写入的内容都应该保存(我有相应的函数)。我的问题是,当我从一个俯冲移动到另一个俯冲时,jquery函数没有被调用。所以我尝试了onblur函数、onmouseleave函数等,但它不起作用,只在第一次加载时起作用。这是因为我在动态绑定中添加函数的方式吗?请任何人帮忙

function createNewStickyNote() {
    i++;
    var row = $("<div>", { id: "divStickyNote_" + i, class: "mybox" }, onblur = onblurFunction())
            .append($("<div>", { class: "boxtitleLeft" }).html("<img src='Images/Plus.png' height='23px' width='23px' onclick=createNewStickyNote()  >"))
            .append($("<div>", { class: "boxtitleRight", }).html("<img src='Images/Delete.png' height='23px' width='23px' onclick=deleteStickyNote('divStickyNote_" + i + "','divData_" + i + "')  >"))
            .append($("<div>", { id: "divData_" + i, class: "boxcediv", contenteditable: true }));

        row.draggable({ handle: ".boxtitleLeft,.boxtitleRight" }).resizable();     
        $("#div_Main").append(row);
        popup_bar = document.getElementById("divStickyNote_"+i);
        popup = document.getElementById("divStickyNote_"+i);
        offset = { x: 0, y: 0 };         
        popup_bar.addEventListener('mousedown', mouseDown, false);            
        return false;
}

<form id="form1" runat="server">
    <div id="div_Main"></div>
</form>
函数createNewStickyNote(){
i++;
var row=$(“”,{id:“Divistickynote_u“+i,类:“mybox”},onblur=onblurFunction())
.append($(“”,{class:“boxtitleLeft”}).html(“”)
.append($(“”,{class:“BoxTitlerRight”,}).html(“”)
.append($(“”,{id:“divData_u“+i,class:“boxcediv”,contenteditable:true}));
row.draggable({handle:.boxtTitleLeft、.boxtTitleRight}).resizeable();
$(“#div_Main”)。追加(行);
popup\u bar=document.getElementById(“divStickyNote”+i);
popup=document.getElementById(“divStickyNote_uu2;”+i);
偏移量={x:0,y:0};
弹出菜单条addEventListener('mousedown',mousedown,false);
返回false;
}

不确定“createNewStickyNote”函数的最后5行在做什么-比如(在使用JQuery时)将事件处理程序绑定到新添加的div

row.on('mousedown', mouseDown);

不确定“createNewStickyNote”函数的最后5行在做什么-比如(在使用JQuery时)将事件处理程序绑定到新添加的div

row.on('mousedown', mouseDown);
tabindex=“0”
contentEditable
应该可以解决您的问题

作为旁注,您应该注意使用焦点触发器进行操作,因为它们并不总是可靠的。用户可能不会将鼠标移出框,而是使用TAB键

如果保存便笺的表单具有用于关闭表单的热键,则用于将便笺保存到数据库的功能可能会在刷新新数据之前保存旧数据

这完全取决于代码的其余部分,但要记住,

tabindex=“0”
contentEditable
应该可以解决您的问题

作为旁注,您应该注意使用焦点触发器进行操作,因为它们并不总是可靠的。用户可能不会将鼠标移出框,而是使用TAB键

如果保存便笺的表单具有用于关闭表单的热键,则用于将便笺保存到数据库的功能可能会在刷新新数据之前保存旧数据


这完全取决于代码的其余部分,但要记住,默认情况下,元素不能接收焦点,因此不能丢失焦点,这就是为什么不调用
onblur
函数的原因。看见您可以将
tabindex=“0”
contentEditable
添加到您的
div
中,这样它将获得焦点。谢谢@mikeyq6。问题已解决。
元素默认情况下无法接收焦点,因此不能丢失焦点,这就是为什么不调用
onblur
函数的原因。看见您可以将
tabindex=“0”
contentEditable
添加到您的
div
中,这样它将获得焦点。谢谢@mikeyq6。问题解决了。