Jquery选择器对添加的dom元素没有动态行为
Jquery selector not behaving dynamically on added dom element
我试图获得一个动态模态显示与输入字段,并检索输入模态的添加到DOM的每次迭代的值。目前,输入在第一次迭代中被分配了正确的值,并在每次后续迭代中保留该值。
例如,当我在第一次调用模态时输入'3' in时,行为如预期的那样。然而,第二次或任何后续时间模态创建,我输入一个不同的值,如'4'或'5',我总是接收'3'作为输入值。
下面是创建模态的代码://show item choice input screen when item clicked
$(".item_choice").click(function() {
selectedItemId = $(this).attr('id');
var overlay = "<div class='"grey_out'">'
<div class='"choice_details'">'
<h2>"+selectedItemId+"</h2>'
<div class='"spacing_vert_small'"></div>'
<h3>Quantity</h3>'
<input class='"choice_quantity'" type='"text'"/>'
<a class='"choice_quantity_submit'" >OK</a>'
</div>'
</div>";
$(".page_header").before(overlay);
});
下面是从模态中检索字段值的样子:
$( document ).on( "click", "a.choice_quantity_submit", function() {
var quantityItem = $(".choice_quantity").val();
var domId = '#' + selectedItemId + ' h2';
$(domId).text(quantityItem);
$(".grey_out").fadeOut('slow', function() {
console.log('completed?');
});
});
我认为问题是document.on('click')
被调用一次,并引用了创建覆盖的原始迭代。任何帮助使JQuery选择器的覆盖动态行为将是非常感激的。
这一行
var quantityItem = $(".choice_quantity").val();
获取类名="choice_quantity"的第一个元素的值。你需要把它改成
var quantityItem = $(this).prev('input').val();
相关文章:
- 点击功能没有'ajax调用动态元素(Backbone)后无法工作
- 将动态元素绑定到函数;只剩下一个绑定
- 关于动态元素中循环中的事件
- 对动态元素使用.on()和e.stopPropagation()
- 只删除javascript中的1个动态元素
- 删除在加载dom之后创建的动态元素
- 从服务器和/或客户端加载动态元素的典型技术是什么
- IE7/8中的jQuery动态元素错误
- Jquery动态元素选择器
- AnguarJS$编译的动态元素
- 使用jQuery使动态元素可选择
- jquery在动态元素上调用日期选择器
- 如果在transclusion之后添加,为什么指令下的动态元素具有错误的作用域
- 如何使用jQuery唯一地识别具有相同id的类似动态元素
- 将单击处理程序绑定到动态元素
- 为动态元素附加事件处理程序
- 使用 jQuery 创建动态元素 单击事件始终返回 for 循环中的最后一个索引
- jQuery中的目标动态元素
- 将动态元素/行添加到 Angularjs 中的多维 Json 数组中
- Jquery 单击函数不适用于动态元素