2012-09-14 32 views
9

我有功能:如何在动态插入元素上使用焦点和模糊?

$(document).ready(function(){ 

    $("input.myclass").focus(function() { 
     // something 
    }).blur(function() { 
     // something 
    }); 

} 

和HTML:

<div class="usil"> 
    <div class="editable"> 
     <form> 
      <input type="text" class="myclass" /> 
     </form> 
    </div> 
</div> 

在加载页面的jQuery的“MyClass的”元素正常工作,但其他脚本动态添加“USIL”类的div并在此div的jQuery的不要工作。怎么做?

回答

25

使用事件代表团:

$(document).on('focus',"input.myclass", function() { 
     // something 
    }).on('blur',"input.myclass", function() { 
     // something 
    }); 

$(document).on({ 
    'focus': function() { 
     // something 
    }, 
    'blur': function() { 
     // something 
    } 
}, 'input.myclass'); 

http://api.jquery.com/on

http://learn.jquery.com/events/event-delegation/

+0

+1奈斯利简单和直接 –

+2

应当注意的是,使用document'的'不是一般的,如果能避免这是一个好主意。出于性能原因,您想使用最接近的通用静态祖先元素。 –

+0

是的,值得注意的是 - 虽然我刚才不打算进入这一点,因为这显然是OP的一个新概念,并且典型使用的差异不明显。从v1.9开始停用.live: – Blazemonger

-1

该代码可以帮助:

$('input').live('focus', function() { 
    $('label span').text('focus'); 
}).live('blur', function() { 
    $('label span').text('blur'); 
}); 


用例: http://jsfiddle.net/CPQ37/

+1

。http://stackoverflow.com/questions/14354040/jquery-1-9-live-is-not-a-function – meataxe

相关问题