我有一些代码,我循环遍历页面上的所有选择框,并将.hover事件绑定到它们,以便在它们的宽度上做一些麻烦mouse on/off.
这发生在页面准备就绪并且工作得很好.
我遇到的问题是,我在初始循环后通过Ajax或DOM添加的任何选择框都不会受到事件限制.
我找到了这个插件(jQuery Live Query Plugin),但在我用插件添加另外5k到我的页面之前,我想知道是否有人知道这样做的方法,无论是直接使用jQuery还是通过其他选项.
我有一个标签A,当点击它时,它附加另一个标签B以执行点击动作B. 因此,当我点击标签B时,执行动作B. 但是,该.on方法似乎不适用于动态创建的标记B.
标签A的html和jquery如下:
<a id="address" class="add_address btn btn-inverse btn-medium pull-right push-top">Add Shipping address</a>
$('.add_address').click(function(){
//Add another <a>
$(document).append('<a id="address" class="pull-right update btn btn-inverse btn-medium push-top">Update</a>');
})
Run Code Online (Sandbox Code Playgroud)
当单击标签B时,执行一些动作B. 我的jquery如下:
$('.update').on('click',function(){
//action B
});
Run Code Online (Sandbox Code Playgroud)
我有一些非动态内容,也有类".update".在.on()上面的方法中,对于非动态内容,但不适用于动态内容.
如何使其适用于动态内容?
我在 api.jquery.com 和我的脚本上浪费了 1 个小时来找出问题,但仍然无法解决。
这是我的script.js
// DOM ready
$(function(){
// gets categories from server
$.post("category.php", function(data) {
$("#category ul").html(data);
});
// tests click event
$("a").click(function(evt) {
alert("Handler for .click() called.");
evt.preventDefault();
});
});
Run Code Online (Sandbox Code Playgroud)
在index.php中有4个锚标记,前三个是从服务器加载的,正如您在脚本中看到的那样,最后一个是预加载的(静态)(不是从服务器加载的)。问题是我已经在 jQuery 选择器中选择了所有锚元素,正如您在脚本中看到的那样,但我的事件仅适用于预加载的最后一个锚标记。怎么了 ?为什么该事件不适用于前三个锚标记?
我正在使用jQuery动态添加输入.之后我尝试使用焦点事件来生成另一个输入组.这是jsfiddle(http://jsfiddle.net/sk8UG/),下面是代码片段
HTML:
<div class='row' id='addChild'>
<input type='name' name='child0' id='child0'>
<input type='name' name='phone0' id='phone0'>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
$(document).ready(function(){
$("#child0").focus(function() {
$('#addChild').append("<input type='name' name='child1' id='child1'><input type='name' name='phone1' id='phone1'>");
});
$("#child1").focus(function() {
$('#addChild').append("<input type='name' name='child2' id='child2'><input type='name' name='phone2' id='phone2'>");
});
});
Run Code Online (Sandbox Code Playgroud)
在#child0的焦点上,它将创建#child1.但是,在#child1的焦点上,它什么也没做