jqueryui对话框上的点击事件
click event on jqueryui dialog
我从 jQuery 和 Jquery UI 开始。目前,我打开的模态对话框存在问题,其中包含来自 ajax iTunes 响应的元素:
$.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);
});
重点是每个行元素都有一个输入按钮标签。现在我想在单击输入按钮时捕获以将所选值传递给父级 window:
$(".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() );
});
但是一直没有触发点击事件。谁能帮帮我?
你试过了吗?
$(document).on("click" , ".itunes-select" , function () {
// Your Code Here
});
您应该添加
$(".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() 部分之后),这应该可以工作。如果这样做,您将点击事件绑定到动态生成的内容。
试试这个:$(document).on("click", ".itunes-select", function(){});
.
您附加点击的方式与当时选定的元素有关。来自 jQuery 文档:"The .on() method attaches event handlers to the currently selected set of elements in the jQuery object."
我从 jQuery 和 Jquery UI 开始。目前,我打开的模态对话框存在问题,其中包含来自 ajax iTunes 响应的元素:
$.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);
});
重点是每个行元素都有一个输入按钮标签。现在我想在单击输入按钮时捕获以将所选值传递给父级 window:
$(".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() );
});
但是一直没有触发点击事件。谁能帮帮我?
你试过了吗?
$(document).on("click" , ".itunes-select" , function () {
// Your Code Here
});
您应该添加
$(".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() 部分之后),这应该可以工作。如果这样做,您将点击事件绑定到动态生成的内容。
试试这个:$(document).on("click", ".itunes-select", function(){});
.
您附加点击的方式与当时选定的元素有关。来自 jQuery 文档:"The .on() method attaches event handlers to the currently selected set of elements in the jQuery object."