我需要做的是让'.clippy'类成为我的选择器,只是选择器没有事件,但似乎它不起作用
如何从ajax响应元素中获取选择器
如果我执行此操作$('body').on( 'event', '.clippy', func(){} )
,它肯定有效,但如果我只需要像$('.clippy')
这样的选择器,为了测试我尝试$('.clippy').click(function(){ alert(1)})
的选择器,但它不起作用
我只需要选择器,因为它将它集成在一个插件上,插件只需要这样的选择器$('.clippy')
$.ajax({
type: 'POST',
url: '{{ url('multiple-show-links') }}',
data: { ids: val },
success: function( i ) {
$('#holder').html('');
var html = '', datos = [], ctr = 0;
$.each( i, function ( x ) {
html += '<div class="uploaded-file-popup-holder">' +
'<div class="uploaded-file-name">' +
i[x].main_title +
'</div>' +
'<div class="uploaded-file-info-hoder">' +
'<table class="table table-bordered showlinks">' +
'<tr>' +
'<td class="col-red" width="168">Download Link:</td>' +
'<td class="b_1" id="link_download_' + ctr +'">' + i[x].url_download + '</td>' +
'<td id="copy_download" class="align-center valign-middle"><span id="c_1" class="clippy" data-text="' + i[x].url_download + '" data-clipboard-target="link_download_' + ctr +'">COPY</span></td>' +
'</tr>' +
'</table></div></div>';
ctr++;
});
$('#holder').html(html);
}
});
答案 0 :(得分:0)
错误是您设置事件处理程序时。
在第二步中,您将事件处理程序设置为当前不存在的选择器。因此,没有设置事件处理程序。
$('.clippy').click(function(){ alert(1)})
在第一种情况下,您使用附加到现有body
元素的全局事件处理程序。
$('body').on( 'event', '.clippy', func(){} )
事件处理程序存在并将保留在那里。如果用户点击,则事件处理程序不会触发,因为.clippy
上有点击,但因为点击了body
元素。但是,如果指定为第二个参数的选择器匹配,jQuery将只执行回调。
这是在向网页动态添加HTML的网站中使用事件处理程序的常用方法(例如,在AJAX调用之后)。