2014-01-17 35 views
0

這個例子效果很好,和我在項目中使用的一樣,但我使用的數據,在這種情況下,與data-name attr的div由ajax加載,看起來不起作用。 在控制檯中,火狐輸出這個click後:ajax調用後無法從div請求數據。我該如何解決?

getPreventDefault()sollte nicht梅爾verwendet werden。 Verwenden SIE stattdessen defaultPrevented.jquery.min ...

http://jsfiddle.net/n495c/14/

JS

 $(document).ready(function() { 
     $("#content div").click(function() { 
      var title = $(this).data("name"); 
      $("#content div").text(title); 
     }); 
    }); 

HTML

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<div id="content"> 
<div data-name="Neu"></div> 
</div> 

CSS

#content { 
    width: 100%; 
    height: 100%; 
} 

#content div { 
    width: 50px; 
    height: 50px; 
    background: red; 
    color: white; 
} 
+0

委託事件處理程序。 – adeneo

+0

你對'委託事件處理程序'意味着什麼? 這裏EN中的控制檯輸出:'getPreventDefault()不應該再使用了。改爲使用defaultPrevented。' – visionInc

+0

這只是一個普遍的警告,忽略它。您使用ajax插入元素,因此您需要委派的事件處理程序,因爲綁定事件處理程序時元素不存在。 – adeneo

回答

0

委託事件處理程序:

$(document).ready(function() { 
    $(document).on('click', '#content div', function() { 
     var title = $(this).data("name"); 
     $("#content div").text(title); 
    }); 
}); 
+0

好的,謝謝!有用!只是爲了理解,我的代碼有什麼區別? – visionInc

+0

區別在於委託事件處理程序。使用on()這種方式將事件委託給綁定時實際存在的元素。 – adeneo