2012-03-18 54 views
2

当我编辑contenteditble并单击关闭时,什么也没有发生。它发布的功能尚不存在,所以它应该发出'失败'警报。我使用了相当类似的代码,没有任何问题。我已经尝试了'模糊'和'改变'。更改和模糊不工作jquery中的部分标记

任何帮助,这是非常感谢。

HTML摘录:

<h4><section id="title+job+150" contenteditable="true">Independent Contractor</section></h4> 

jQuery的摘录:

$("section").blur(function() { 

        $.ajax({ 
          type : 'POST', 
          url : '<?php echo site_url('resume/edit_resume_ajax'); ?>', 
          data: { 
           resume_id : '<?php echo $this->session->userdata('resume_id'); ?>',        
           section_value: $("section").val() 
          }, 
          success : function(msg){ 
          }, 
          error: function(){ 
          alert('failure'); 
          } 
         }); 
+1

为我工作:http://jsfiddle.net/dKTVU/我怀疑还有别的事情,也许您的网址确实存在?您的模糊功能是否已正确关闭,它是否处于DOM准备好的事件中?您的部分元素是否存在于最初的DOM负载上? – 2012-03-18 17:51:35

+0

Thx。这是一个好点,它在加载后动态加载到iframe中。由于我选择了一个标签,我认为无论如何它都会被检测到。 – jsuissa 2012-03-18 18:29:43

回答

1

UPDATE:我以前的解决方案并没有考虑到如何访问一个IFRAME的内容。我忘记了这些文档是针对另一个文档的,而且必须与同一文档中的典型元素进行非常不同的处理。用最简洁的方式做到这一点在jQuery是:

$("#resume_holder").contents().find("section").blur(function() { 
    // blur handler here 
}); 
+0

Thx。这看起来不错,但它没有解决......但是这工作:'$(document.getElementById('resume_holder')。contentWindow.document).blur(function(){'....不知道为什么? – jsuissa 2012-03-18 21:28:24

+0

Doh!我完全忘记了iframe的工作方式,他们针对的是一个不同的文档,当然我的解决方案已经关闭了,你的解决方案很有意义,但我已经更新了解决方案,希望能给你一个更加简洁的解决方案, “元素,jQuery中的”contentWindow“或”contents()“引入iframe内容进行操作 – 2012-03-18 22:09:47

+0

感谢您的帮助,它适用于keydown,而不是模糊 - 但这是一个与contenteditable相关的单独问题。 – jsuissa 2012-03-19 02:04:38