Javascript 使用jquery创建时,DB生成的列表不工作
我有一个简单的表单,它有一个列表(从DB生成的下拉列表),当用户进行选择时,选择将打印在屏幕上。我遇到的问题是,如果我在加载页面时使用jquery调用生成列表的php函数,列表将不起作用,但是如果我直接在html中添加代码,它将起作用Javascript 使用jquery创建时,DB生成的列表不工作,javascript,jquery,select,drop-down-menu,xajax,Javascript,Jquery,Select,Drop Down Menu,Xajax,我有一个简单的表单,它有一个列表(从DB生成的下拉列表),当用户进行选择时,选择将打印在屏幕上。我遇到的问题是,如果我在加载页面时使用jquery调用生成列表的php函数,列表将不起作用,但是如果我直接在html中添加代码,它将起作用 当页面加载时,下拉列表的调用方式如下: $('#createDropDown').ready(function(){ id = $('#createDropDown').val(); // this calls a php fu
当页面加载时,下拉列表的调用方式如下:
$('#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);
});
xajax_addCategory(选中)在屏幕上打印所选项目。但它不起作用
注意:如果我调用php函数直接在main.html文件中生成下拉列表,这样就可以了,所以我知道列表是用正确的ID生成的,并且可以工作,但是当我使用Jquery在加载时调用php方法时,它就不工作了。。。我不明白为什么
PS我是Jquery的noob,所以一些见解将非常受欢迎
更新: 我尝试在列表生成后创建绑定,如下所示:
$('#createDropDown').ready(function()
{
id = $('#createDropDown').val();
xajax_addDropdownMenu(id);
$("#categoryList0").bind('change',function()
{
console.log('The code goes here!!');
});
});
其中,categoryList0是新列表的ID。列表的类是categoryList
但是我仍然被卡住了,因为当发生更改时,它仍然没有进入函数中…您的第二个代码片段会找到与#categoryList匹配的所有元素,并将函数绑定到更改事件。问题是当时没有#categoryList元素,因为您稍后会创建它。因此,您需要在创建列表后进行绑定。您的第二个代码段会找到与#categoryList匹配的所有元素,并将函数绑定到更改事件。问题是当时没有#categoryList元素,因为您稍后会创建它。因此,您需要在创建列表后进行绑定。我找到了一种稍后使用xajax进行绑定的方法。由于某种原因,jquery文件中没有任何地方可以将此函数与新的下拉列表绑定。我的解决方案是在addDropdownMenu函数中使用xajaxResopnse->addScript(script)添加jquery脚本,如下所示 函数addDropdownMenu($id){ 首先像这样对新列表执行绑定(“#categoryList”)。bind('change',function categoryListChange(){…} 然后
通过$xajaxResponse->addScript($javascript);添加jquery脚本之后,我找到了一种使用xajax进行绑定的方法。由于某些原因,jquery文件中没有任何地方可以将此函数与新的下拉列表绑定。我的解决方案是使用xajaxResponse->addScript(脚本)添加jquery脚本在添加下拉菜单中,如下所示 函数addDropdownMenu($id){ 首先像这样对新列表执行绑定(“#categoryList”)。bind('change',function categoryListChange(){…} 然后
通过$xajaxResponse->addScript($javascript)添加jquery脚本我该如何做?创建列表后如何创建绑定?您需要挂接到xajax,并在添加列表后让它在第二个代码段中运行代码。由于我不知道xajax,我无法告诉您如何做。我该如何做?创建列表后如何创建绑定?您需要挂接到xajax a在添加列表后,让它运行第二个代码段中的代码。因为我不知道xajax,所以我无法告诉您如何操作。
$('#createDropDown').ready(function()
{
id = $('#createDropDown').val();
xajax_addDropdownMenu(id);
$("#categoryList0").bind('change',function()
{
console.log('The code goes here!!');
});
});
$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;
}