使用jQuery创建时不工作DB生成的列表
-
13-09-2019 - |
题
我有一个简单的表格,具有列表(从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描述); 强>