2013-07-31 29 views
3

我有一個JavaScript函數,帶有一個用於dragover的eventListener。jQuery - 使用像「dragover」這樣的JS事件

它看起來像這樣:

document.getElementById("someID").addEventListener("dragover", 
     function(){ 
      //Do logic 
     }, 
    false); 

的事情是 - someID將是一個動態的元素 - 它被刪除,並添加到頁面上。在它被移除並重新加入之後,eventListener將不再提取dragover事件。我知道如何處理這種情況的唯一方法是使用jQuery的.on()

我的問題:我找不到在jQuery API下的dragover事件...它是否存在?如果不是我怎麼能在jQuery中使用它?

回答

3

您可以定義客戶拖事件作爲,

(function(jQuery) { 

//Defining drag event. 
jQuery.fn.drag = function() { 
    eventType = arguments[0] || 'dragstart'; 
    onEvent = typeof arguments[1] == 'function' ? arguments[1] : function() { 
    }; 
    eventOption = arguments[2] || false; 

    $(document).on('mouseover', $(this).selector, function() { 
     if ($(this).hasClass(eventType)) { 
      return; 
     } 
     if (! typeof eventType == 'string') { 
      return; 
     } 

     console.log('Binding Drag Event'); 
     $(this).each(function() { 
      $(this)[0].addEventListener(eventType, onEvent, eventOption); 
      $(this).addClass(eventType); 
     }) 
    }); 
} 
})(jQuery); 

然後,你必須添加爲一個插件,如下應用它所需選擇。

$('#someID').drag('dragover', function(){ 
     //Do logic 
     alert('DRAGGING!!!!!!'); 
    }, 
false); 

工作撥弄http://jsfiddle.net/sadepu/aDYfP/

+1

演示墜毀瀏覽器... – user1775598

相關問題