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 中使用颜色框

jquery 多个选择器,包括“this”——最好的简洁语法

Jquery $('class', this) 选择器不起作用

TinyMCE 和 jquery.colorbox

选择变量/选择器和 $(this)

Colorbox 和 pinterest 按钮 URL 更新