2010-07-17 47 views
0

我正在使用jquery edit in place lib,并且在尝试使用类选择器选择多个可编辑项目时遇到问题。jquery-in-place-editor pre post hooks?

我对元素数组调用editInPlace,所以我不必为每个可编辑项目重复该调用。

我无法弄清楚如何将item id追加到url。我正在使用rails,所以我需要一个像tags/10

您知道如何动态更改每个可编辑项目的url或params吗?我尝试使用回调参数,但取消了ajax请求。

HTML:

<li class="tag" id="tag_1">bright light</li> 
<li class="tag" id="tag_2">soft light</li> 

的jQuery:

$('.tag').editInPlace({ 
    url:"/tags/" // NEED TO ADD THE ASSET ID TO THE URL example /tags/10 
}); 

回答

1

您可以使用.each(),像这样:

$('.tag').each(function() { 
    $(this).editInPlace({ 
    url:"/tags/" + this.id.replace('tag_','') 
    }); 
}); 

这只是需要ID,并通过.replace()之前移除tag_部分追加它。

+0

为什么不只是做: '$( '标签。 ')editInPlace({ URL: “/标签/” + $(本).id.replace(' tag_', '');} 。 );' ?? – 2010-07-18 05:56:40

+0

我真的很抱歉输入'$(this).id'(我只是复制/粘贴代码)。它应该是'$(this).attr(id)'。另外,我认为jQuery处理'this''总是指父功能,而不是窗口/文档。无论如何,我想你的第二部分也许是对的。应该尝试一下。感谢澄清。 – 2010-07-18 11:09:06

+1

@Shripad - 你说的正确,它*通常指*父函数......并且它也在这里执行,父函数是'document.ready'处理程序。重要的是,只要调用'.plugin(option)'不会创建一个闭包,你仍然在*那个父函数中,而'.each()'确实创建了一个闭包,指的是你想要的元素:) – 2010-07-18 11:14:20

相关问题