如何选择用.load()加载的动态内容

时间:2017-05-17 18:30:09

标签: jquery

我无法选择使用.load()

加载到页面上的内容

我知道我可以使用$('#container').on('click', '.item', function() { // do something });代替$('#container .item')绑定事件,但我只是选择这些项目并不幸运。

index.html:

<div id="container"></div>

somefile.html:

<div class="item">one</div>
<div class="item">two</div>

jq / js:

$('#container').load('somefile.html');

$('.item').css('background', 'blue'); //not working

$('#container .item').css('background', 'blue'); //not working

var container = $(container);
$('.item', container).css('background', 'blue'); //not working

2 个答案:

答案 0 :(得分:1)

正如评论中所述,.load()是异步的,这意味着您无法保证在后续指令执行时它将完整。

要解决此问题,请在.load()的回调中运行代码,该代码仅在.load()完成时调用:

$('#container').load('somefile.html', function() {
    $('.item').css('background', 'blue'); 
});

答案 1 :(得分:0)

感谢评论提醒,回答我自己的问题。

.load()是异步的,所以在加载之前不要尝试选择内容。使用回调&#39;完成&#39;功能

http://api.jquery.com/load/

$('#container').load('somefile.html', function() {
  $('.item').css('background', 'blue');
});