我是jquery的新手,我无法理解如何在'click'事件中使用'blur'事件。
我的项目有
这是我项目的草图:Fiddle
我添加到画布的每个元素都有两个表示形式:一个对象和一个可视化的对象。
关键是:当我向画布添加元素时,我可以单击它们,我可以在编辑器窗口中编辑它们的属性。元素有一个文本属性和它的名字。
但是如果我有例如:画布上的2个元素并尝试更改其中一个元素的文本属性(在编辑器窗口中),它会更改所有元素文本属性。我有问题的功能如下:
$(function(){
canvas.delegate('.myElement','click', function(){
var obj = this;
myTextArea.val(this.text);
myTextArea.on('blur',function(){
obj.text = myTextArea.val();
});
});
});
有人能告诉我我在哪里?感谢帮助人员
答案 0 :(得分:1)
模糊函数,只需在单击函数外声明事件:
myTextArea.on('blur',function(){
obj.text = myTextArea.val();
})
确保在函数范围内定义了obj。
答案 1 :(得分:1)
每次单击元素时,您都会绑定模糊事件。
您可以声明一个变量来跟踪被点击的元素:
var currentElement = null;
然后绑定模糊处理程序:
myTextArea.on('blur',function(){
if (currentElement) {
$(currentElement).text(myTextArea.val());
}
});
canvas.delegate('.myElement','click', function(){
currentElement = this;
});