星期一, 10月 19, 2009

jQuery bind與live

要加event listener時,可用bind或live來綁event 究竟兩者差在哪邊 bind如下以綁drag事件
$(function(){
   $('.floatBox').bind('drag',function( event ){
       $( this ).css({
                       top: event.offsetY,
                       left: event.offsetX
       });
       //var pageCoords = "( " + e.pageX + ", " + e.pageY + " )";
       //var clientCoords = "( " + e.clientX + ", " + e.clientY + " )";
   }); 
});
將event在onload時,加入listener 可是當之後要動態加入時,後續加入的floatBox就不會有反應 因此得再bind的新的floatBox 這時就可以改用live,程式碼如下(只是把bind改用live) jQuery就會聰明的自己bind事件,真的是太神奇了
$(function(){
   $('.floatBox').live('drag',function( event ){
       $( this ).css({
                       top: event.offsetY,
                       left: event.offsetX
       });      
   }); 
});

沒有留言: