2012-09-28 23 views
1

我動態創建一個div,然後將其附加到容器:jQuery的 - 如何我添加一個事件後動態創建

var str = '<div class="dimsdiv" id="'+dim.src+'" cursor:pointer;"></div>'; 
$('#fpdiv').append(str); 

現在我需要一個懸停增加,甚至那些div的。我試圖引用它,但後來發現我需要考慮.on()。我試過這個(之前):

$('#'+dim.src).hover(function{},function{}); 

但如預期,這並沒有奏效。我也試過這個:

$('#'+dim.src).on('hover','(function{},function{})'); 

但似乎無法得到正確的語法。有人可以幫忙嗎? 在此先感謝。

回答

3

你可以試試這個

var str = $('<div/>', { 
    text:'Hello', 
    class:'dimsdiv', 
    id:'dim_src', 
    style:'cursor:pointer', 
    mouseenter:function(){ ... }, 
    mouseleave:function(){ ... } 
}); 
$('#fpdiv').append(str); 

還能去除.dim.src,而是使用dim_src作爲id,它用作jQuery的class選擇,不知道爲什麼你使用它壽,但$('#'+dim.src)是無效的。

DEMO

+0

謝謝。我用了。因爲我正在讀取一個JSON數組。簡單到足以將其首先分配給變量。我會給它一個鏡頭。 –

+0

不客氣:-) –

+0

我仍然不能使用這種格式來處理多種風格。有任何想法嗎?我有幾種樣式可供選擇。我想我可以附加一個.css()到最後。我會嘗試的。 –

0
.on('hover',' has been deprecated in the latest jQuery version.. 

您需要使用委託事件來完成該操作。將事件添加到父容器。

第二種方法是增加的事件一旦元件被創建

$(function() { 
    var addEvent = function() { 
     $('.dimsdiv').unbind().hover(function {}, function {}); 
    } 

     // Lets say you are creating your div's here 
     $('#btn').on('click', function() { 
      // Create Div 
      var str = '<div class="dimsdiv" id="'+dim.src+'" cursor:pointer;"></div>'; 
      $('#fpdiv').append(str); 

      // Call the function here 
      addEvent(); 

     }); 
});​ 
2

可以用於動態創建的元素使用delegated-events approach和綁定懸停事件(即mouseentermouseleave)與類「dimsdiv」和與ID 「fpdiv」父元素:

$("#fpdiv").on({ 
    mouseenter : function() { 
     // hover on 
    }, 
    mouseleave : function() { 
     // hover off 
    } 
}, ".dimsdiv"); 
0

速記hover人在1.8中刪除了on。您可以改用hover()方法。它接受一個或兩個函數作爲參數來處理懸停和懸停事件。

$('#'+dim.src).hover(
    function() { 
    // hover in code here 
    }, 
    function() { 
    // hover out code here 
    } 
); 
+0

其實,這是我正在嘗試,它不起作用。 –

相關問題