我从jQuery和Jquery UI开始。目前我遇到了一个问题,我打开的模态对话框包含来自ajax iTunes响应的元素:
<child (myevent)="handleEvent($event)">
关键是每个行元素都有一个输入按钮标记。现在,只要单击输入按钮将所选值传递给父窗口,我就想要捕获:
$.ajax({
url: $url,
dataType: 'JSONP'
})
.done(function(data) {
console.log(data);
var cuadro_itunes = "<table><tr><td>Artista</td><td>Tema</td><td>Portada</td><td>Usar</td></tr>";
$.each(data.results, function(i) {
cuadro_itunes = cuadro_itunes+"<tr><td>"+
data.results[i].artistName+"</td><td>"+
data.results[i].trackName+"</td><td>"+
"<img class='itunes-imagen' id='"+i+"' src='"+data.results[i].artworkUrl100+"' />"+
"<input type='hidden' class='itunes-url' id='"+i+"' value='"+data.results[i].trackViewUrl+"' /></td><td>"+
"<input type='button' class='itunes-select' id='"+i+"' value='Seleccionar' /></td></tr>";
});
cuadro_itunes = cuadro_itunes+"</table>";
$("#itunes-dialog").html( cuadro_itunes );
$("#itunes-dialog").dialog("open");
})
.fail(function(data) {
console.log(data);
});
但是从不触发click事件。任何人都可以帮助我吗?
答案 0 :(得分:1)
你试过这个吗?
$(document).on("click" , ".itunes-select" , function () {
// Your Code Here
});
答案 1 :(得分:1)
您应该添加
$(".itunes-select").on("click", function() {
$("#itunes-dialog").dialog("close");
$("body").find(".enlace#"+window.busqueda_id).val( $("#itunes-dialog").find(".itunes-url#"+$(this).attr("id")).val() );
$("body").find(".portada#"+window.busqueda_id).val( $("#itunes-dialog").find(".itunes-imagen#"+$(this).attr("id")).val() );
});
部分在ajax成功函数内(在$ .each()部分之后),这应该有效。如果这样做,则将click事件绑定到动态生成的内容。
答案 2 :(得分:0)
试试这个:$(document).on("click", ".itunes-select", function(){});
。
您附加该点击的方式与当时选定的元素有关。来自jQuery docs:“。on()方法将事件处理程序附加到jQuery对象中当前选定的元素集。”