Javascript jquery-捕获指定元素的加载
我希望捕获/处理指定项目的加载(如果是动态加载的话) 如果事件是Javascript jquery-捕获指定元素的加载,javascript,jquery,Javascript,Jquery,我希望捕获/处理指定项目的加载(如果是动态加载的话) 如果事件是单击它工作正常: $('#articles').on("click",".article",function(eo){ //... }); 这就是我尝试过的: $(document).on("load","input",function(){ alert(1); }); 我会这样使用它: <input type=hidden name='size' value
单击它工作正常:
$('#articles').on("click",".article",function(eo){
//...
});
这就是我尝试过的:
$(document).on("load","input",function(){
alert(1);
});
我会这样使用它:
<input type=hidden name='size' value=1>
<select name='size'>
<option value=0>A4</option>
<option value=1>A3</option><!--this will be selected, that is indicated with the hidden input-->
</select>
如果可能的话,我会问一些on()函数,因为手册上说它是首选函数。您可能想看看用于jquery的livequery插件:
如果是在动态加载的元素上,请尝试.live()
,它的工作原理类似于.bind()
,只会打开搜索动态添加的元素,并在它们出现时进行绑定。如果要查找特定元素,您可以使用setTimeout
定期查找与新选择器匹配的元素
function findNew() {
var $selected = $('.some-selector').filter(function() {
return !$(this).data('filtered');
});
$(document).trigger({type: 'elementadded', elements:$selected });
$selected.data('filtered', true);
setTimeout(findNew, 500);
}
$(document).on('elementadded', function(e) {
alert('found ' + e.elements.length + ' new elements.');
});
findNew();
我建议如下:
$(document).on('DOMNodeInserted', 'input', function(e) {
console.log($(this));
});
如果您担心那些使用未实现DomNodeInserted
的浏览器的用户的体验,那么您当然可以在元素附加到DOM的点触发一个具有自定义事件名称的事件,然后使用on()
方法侦听该事件:
$(document).on('customEventName', 'input', function(e) {
console.log($(this));
});
$('#add').click(
function() {
var i = $('input').length,
input = $('<input />',{'id' : 'input_' + i});
input.appendTo('body').trigger('customEventName');
});
$(文档).on('customEventName','input',函数(e){
log($(this));
});
$('#添加')。单击(
函数(){
变量i=$('input')。长度,
input=$('',{'id':'input_'+i});
input.appendTo('body').trigger('customEventName');
});
参考资料:
如果在输入
上预期发生加载
事件,您想做什么……您确定要做什么吗?顺便问一下,你在干什么?@ParthThakkar查看我的最新问题<在jQuery 7.1+中,code>on()
已被替换为live()
,live()
现在已被弃用(不应使用)。在jQuery 7及以下版本中,上的文档建议用户优先使用live()
。
$(document).on('DOMNodeInserted', 'input', function(e) {
console.log($(this));
});
$(document).on('customEventName', 'input', function(e) {
console.log($(this));
});
$('#add').click(
function() {
var i = $('input').length,
input = $('<input />',{'id' : 'input_' + i});
input.appendTo('body').trigger('customEventName');
});