我有一个简单的表格,具有列表(从DB生成下拉列表)中,当一个用户进行选择,该选择被打印在屏幕上。我遇到的问题是,如果我使用jQuery调用PHP功能可按生成列表当页面正在加载,该列表将无法正常工作,但如果我直接在HTML代码中添加代码,将工作结果< BR> 当页面加载的下拉列表被称为是这样的:


$('#createDropDown').ready(function(){
        id = $('#createDropDown').val(); 
        // this calls a php function that creates a dropdown list from the DB
        // the dropdown's id = 'categoryList'
        xajax_addDropdownMenu(id);

});

与在 ID = '所属分类'所生成的列表,和其被正确地追加到createDropDown DIV称为 “createDropDown”。到现在为止,一切都看起来很不错! 在进行选择时,新创建的列表(所属分类)另一个jQuery是称为上进行的问题就来了

当作出选择下面的代码应该被称为:


$('#categoryList').change(function() {
    bucket_id = $('#categoryList').val(); 
    var selected = "";
    // get selected value from the dropdown menu
        $("#categoryList option:selected").each(function () {
            selected += $(this).text() + " ===>";
         });
        // if we have a valid ID print it in the screen.
        if(bucket_id!= 0)
        {
            xajax_addCategory(selected);
        }
     });
xajax_addCategory(选择的); 打印在屏幕上所选择的项目。但不工作。

注:此工程确定,如果我调用PHP函数直接在main.html中文件生成的下拉列表中,所以我知道,正在用正确的ID生成的列表和它的作品,但是当我使用jQuery调用在加载PHP方法,它不工作...我不明白为什么。

PS我的jQuery小白这么一些有识之士将是非常欢迎!


更新:

我试图创建绑定这样生成的列表后:

 
$('#createDropDown').ready(function()
    { 
        id = $('#createDropDown').val();  
        xajax_addDropdownMenu(id); 
        $("#categoryList0").bind('change',function() 
        { 
            console.log('The code goes here!!'); 
        }); 
    }); 
 

其中的 categoryList0是新的列表的ID 即可。类列表的是所属分类

但我仍然坚持,因为现在还没有进入该功能时,有一个变化...

有帮助吗?

解决方案

您第二代码段查找匹配#categoryList所有元件和结合到所述变化事件的功能。问题是,有当时没有#categoryList元素,因为您稍后创建它。因此,你需要做的绑定已创建的列表后。

其他提示

我发现了一种方法做一个结合稍后使用xajax的。对于jQuery的文件中的一些原因无处我能够给这个函数绑定新的下拉。我的解决办法是增加在使用xajaxResopnse-> addScript(脚本)jquery的凭证的 addDropdownMenu 功能可按这样

功能addDropdownMenu($ ID){

  $xajaxResponse = new xajaxResponse();

  $html = /* CODE TO GENERATE LIST HERE */ ; 


  $javascript = /*"*///commented out " to visualize code better
    $('#categoryList').bind('change',function categoryListChange() 
    {
     
      //get selected value from the dropdown menu
      var selected = "";
      $("#categoryList option:selected").each(function () 
      {
        selected += $(this).text();
       });

      bucketId = $('#categoryList').val(); 

      if(bucketId!= 0)
      {
        xajax_addCategory(selected);
      }

    });"";

  $xajaxResponse->addAppend("categoryListContainer", "innerHTML", $html);

  $xajaxResponse->addScript($javascript);

  return $xajaxResponse;  

}

首先进行绑定新列表这样的 $( '#所属分类')。绑定( '改变',功能categoryListChange(){...} 接着  通过的 $ xajaxResponse-> addScript添加jQuery脚本($ java描述);

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top