Jquery,在点击事件中模糊事件

时间:2015-04-22 23:51:48

标签: jquery

我是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();
    });
});

});

有人能告诉我我在哪里?感谢帮助人员

2 个答案:

答案 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;
});