colorbox 无法使用 $(this) 选择器传递 POST 数据
Posted
技术标签:
【中文标题】colorbox 无法使用 $(this) 选择器传递 POST 数据【英文标题】:colorbox cannot passing POST data with $(this) selector 【发布时间】:2013-08-08 00:46:41 【问题描述】:我在这里搜索了任何线程,但仍然没有找到我的特殊问题。我有一个数据列表,每一行都有 editBtn 分配为颜色框。我的代码在下面:
$('.editBtn').colorbox(
href: '<?=site_url('jkitem/editjkitem')?>',
iframe: false,
title: 'Change Item',
transition: 'elastic',
speed: 200,
opacity: 0.6,
fadeOut: 300,
overlayClose: false,
data: edited_jkitem : $(this).attr('value'),
onClosed: function()
location.reload();
);
如上所示,我仍然无法将 $(this).attr('value') 传递给我的控制器。这个问题有什么原因吗?
【问题讨论】:
是的,this
不是你想的那样,导致$(this).attr('value')
没有得到你想要的。 this
不是当前的.editBtn
。
但是为什么当我尝试通过 'GET' 传递 data: function() return 'edited_jkitem='+$(this).attr('value') 它可以返回正确的结果?为什么不能通过“POST”方法实现?有没有办法通过邮寄方式获取 .editBtn 的当前值?
您误诊了问题。 GET 和 POST 与此无关。请注意,您在评论中发布的代码使用数据函数,而不是对象。这是一个完全不同的场景,this
会就是你认为的那样。
var a = foo: "bar";
和 var a = function() return foo: "bar";
不一样。
那么,没有办法通过 POST 在当前 .editBtn 中获取价值吗?
【参考方案1】:
这是基于 cmets:
它适用于您的 GET 而不是 POST 的原因是因为您以两种截然不同的方式进行操作。如果您以与 GET 相同的方式执行 POST,它将起作用。
data: function()
return edited_jkitem : $(this).attr('value')
【讨论】:
以上是关于colorbox 无法使用 $(this) 选择器传递 POST 数据的主要内容,如果未能解决你的问题,请参考以下文章
jquery 多个选择器,包括“this”——最好的简洁语法