在jqueryui对话框上单击事件

时间:2016-03-22 15:42:09

标签: jquery jquery-ui-dialog

我从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事件。任何人都可以帮助我吗?

3 个答案:

答案 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对象中当前选定的元素集。”