如何在使用JQuery追加HTML元素之后配置它们
How to configure HTML elements after .append-ing them using JQuery?
Noob需要帮助!)在我的代码中,我试图将内容附加到模式窗口,但在附加后,我无法处理元素。JQuery:
$('a[name=modal]').click(function(e) {
e.preventDefault();
var id = $(this).attr('href');
var temp = $(this).attr('id').split('^');
var modal;
if (temp[0] == "cat_admin")
{
$.ajax({
type: "POST",
url:"post.php",
data: { message : 'modal_cat_edit' },
success:function(result){
modal = result;
$("#dialog").appendChild(result);
}
});
if ($(this).attr('id') != "c_new")
{
var cid = temp[1];
var calias = temp[2];
var cname = temp[3];
$("#dialog").children("#c_name").val("cname");
$("#c_alias").val(calias);
$("#c_id").val(cid);
}
else
{
$("#c_name").val('');
$("#c_alias").val('');
$("#c_id").val('');
}
这是附加的HTML:
<input class='n1' type='text' id='c_name' value='' style='width: 350px; border: 1px solid #5C9ACD;' placeholder='Название категории'/>
<input class='n1' type='text' id='c_alias' value='' style='width: 350px; margin-top: 10px; border: 1px solid #5C9ACD;' placeholder='Псевдоним'/>
<input type='hidden' id='c_id' value="">
<div id='c_del' class='det_button' style='float: none; width: 184px; display: inline-block; margin-top: 15px;'>Удалить</div>
<div id='c_save' class='det_button' style='float: none; width: 184px; display: inline-block; margin-top: 15px;'>Сохранить</div>
我犯了什么错?
Javascript不等待AJAX函数完成。它只是继续脚本。
所以把你的
if ($(this).attr('id') != "c_new")
函数转换为AJAX调用中的成功函数
您的问题是ajax请求需要一些时间,并且您试图在实际加载元素之前处理这些元素。
您应该在ajax的success function
中移动jQuery魔术
我想你的Ajaxcall会变慢,只需将你的代码转移到成功恐惧
相关文章:
- 在Jquery detachment()和appendTo()之后定位元素
- 为什么元素的宽度在页面加载之后和那一刻之后不同
- 如何在一个元素动画之后延迟
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何在加号运算符之后选择数组元素的一部分
- 每次在动画之后完全删除该元素.- 仅使用 CSS
- jQuery 选择元素后,在创建它们之后
- j查询 如何选择当前元素之后的下一个元素
- 在两个元素的 onrender 事件之后执行函数
- JQuery/Javascript - 遍历值之后的所有 json 元素
- 组件之后子元素中的某个方法DidMount in parrent 元素
- 如何在某个元素之前和之后选择某些内容
- 如何在元素之后将模板片段添加到angular.js中的指令中
- 删除在加载dom之后创建的动态元素
- angular 2中另一个元素的“blur”之后不能“focus”
- 在动态创建html元素之后,是否可以触发事件
- 计算表头类之前和之后的所有Item类元素
- 在'之后刷新jQuery Mobile元素;手动'操纵
- 在页面加载时隐藏空元素,但之后不使用knockout.js
- querySelector位于特定元素之后