所以我尝试链接到弹出窗口,
当我用 getId = alert($(obj).attr("id"))
进行测试时,显示的是id值;
但是当我将其更改为 getId = $(obj).attr('id')
时,该值变为undefined
.
有什么解决办法吗?
// Pop-up window
var windowObject;
var getId;
openPopup(this.id);
function openPopup(obj) {
$(document).ready(function() {
$('.all').click(function() {
getId = $(obj).attr('id');
//getId = alert($(obj).attr("id"));
});
});
windowObject = window.open("slideshow/" + getId + ".html", "popup", width = 800, height = 500 ");
}
最佳答案
您的 getId
变量仅在您的点击处理函数内定义。这就是为什么此函数内的警报工作正常(以及 getId = $(obj).attr('id');
),但在最后一个代码字符串中未定义(在 click 之外)打回来)。要修复此问题,请移动点击处理函数内的最后一个字符串:
function openPopup(obj) {
$(document).ready(function() {
$('.all').click(function() {
getId = $(obj).attr('id');
//getId = alert($(obj).attr("id"));
windowObject = window.open("slideshow/" + getId + ".html", "popup", "width=800,height=500");
});
});
}
关于javascript - 警报($(obj).attr ("id"))有效;但 $(obj).attr ('id' ) 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45127950/