使用JQuery&x27定位注入的DIV;s";“加载”;作用

使用JQuery&x27定位注入的DIV;s";“加载”;作用,jquery,events,load,code-injection,getjson,Jquery,Events,Load,Code Injection,Getjson,我从数据库中提取一些信息,然后将其放入DIV,并将所有这些信息注入我的页面。我遇到的问题是在完成加载后定位新注入的DIV 以下是我的jQuery: $j(document).ready(function() { $('a#load-content').click(function(event) { event.preventDefault(); var productId = $j(this).attr('id').replace(/more-info-/, '')

我从数据库中提取一些信息,然后将其放入DIV,并将所有这些信息注入我的页面。我遇到的问题是在完成加载后定位新注入的DIV

以下是我的jQuery:

$j(document).ready(function() {
   $('a#load-content').click(function(event) {
      event.preventDefault();
      var productId = $j(this).attr('id').replace(/more-info-/, '');

      $j.getJSON('../json/quicky/product/id/' + productId, function(json) {
         var productImage = json.image;
         var html = '<div class="quick-info"><img src="' + json.image + '"/></div>';

         $j(body).append(html);   
      });
   });

   $j('div.quick-info').load(function() {
      positionBoxCenter();
   });
});
$j(文档).ready(函数(){
$('a#加载内容')。单击(函数(事件){
event.preventDefault();
var productId=$j(this.attr('id').replace(/more info-/,'');
$j.getJSON('../json/quicky/product/id/'+productId,函数(json){
var productImage=json.image;
var html='';
$j(body).append(html);
});
});
$j('div.quick-info').load(函数(){
positionBoxCenter();
});
});
我已经尝试将quick info DIV的加载事件放在加载内容单击事件之后、getJSON回调函数内部、加载内容单击事件之前以及加载内容单击回调函数内部。我还是不能让它工作


加载函数有什么问题吗?

将其放置在您已有的成功处理程序中:

  $j.getJSON('../json/quicky/product/id/' + productId, function(json) {
     var html = '<div class="quick-info"><img src="' + json.image + '"/></div>';

     $j('body').append( html );
     positionBoxCenter();
  });
通过这种方式,您可以在将jQuery添加到dom之前使用jQuery设置它的位置。或者,您可以在执行附加之前尝试附加该加载处理程序(您仍然需要扩展该元素)。

尝试使用

使用jquery1.3.2 因为在您尝试绑定
load
时,
div.quick-info
不存在


仅供参考。。通常,
$(“#加载内容”)
的选择速度比
$(“a#加载内容”)

的选择速度快。问题是,您试图在此类元素存在之前将事件处理程序绑定到“div.quick-info”。(执行$(document).ready()时,尚未添加div)


使用Duks建议在成功处理程序中完成操作。

您正在ready函数中创建div,单击加载内容后将调用该函数

但是,您可以直接设置加载事件。javascript将在页面加载时执行,这将在实际创建div之前完成

我会把它放在getJSON函数的末尾,如下所示:

$j.getJSON('../json/quicky/product/id/' + productId, function(json) {
     var productImage = json.image;
     var html = '<div class="quick-info"><img src="' + json.image + '"/></div>';

     $j(body).append(html);   
     positionBoxCenter();
  });
$j.getJSON('../json/quicky/product/id/'+productId,函数(json){
var productImage=json.image;
var html='';
$j(body).append(html);
positionBoxCenter();
});

加载事件不适用于div,因为它根本没有加载

完全跳过加载事件,只需将定位元素的代码放在将元素添加到主体的代码之后

   $j('div.quick-info').live('load', function() {
      positionBoxCenter();
   });
$j.getJSON('../json/quicky/product/id/' + productId, function(json) {
     var productImage = json.image;
     var html = '<div class="quick-info"><img src="' + json.image + '"/></div>';

     $j(body).append(html);   
     positionBoxCenter();
  });