Jeditable – 单击Y激活X的编辑

我正在尝试使用Jeditable作为内联编辑解决方案。

默认行为(单击要编辑它的元素)工作得很好,但我想通过单击另一个元素来激活元素。

例如,单击a.activateEdit将激活下一个div.edit(显然应该使用jQuery选择器完成)。

我已经研究过Jeditable docs,但找不到合适的语法

仅供参考,默认的Jeditable语法类似于:

$(document).ready(function() { $('.edit').editable('http://www.example.com/save.php'); }); 

*编辑:找到更好的解决方案 *

上面的代码也不太正确。 它会触发所有Jeditable实例上的click事件。

有很多方法可以做到这一点,这完全取决于您的HTML,但是例如,如果您有以下HTML:

 
Editable text
Edit me!!

然后您可以使用以下JavaScript:

 /* Bind Jeditable instances to "edit" event. */ $(".edit").editable("http://www.example.com/save.php", { event : "edit" }); /* Find and trigger "edit" event on correct Jeditable instance. */ $(".edit_trigger").bind("click", function() { $(this).prev().trigger("edit"); }); 

您可以将此代码放在另一个元素的单击函数中。 例:

HTML:

 Click me to edit 
Edit Me!

jQuery的:

 $(document).ready(function() { $("a.clickme").click(function(){ $('.edit').editable('http://www.example.com/save.php'); }); }); 

好吧, Ata的答案并不是很有效,但确实让我走上了正确的道路:

 $(document).ready(function() { $('.edit').editable('http://www.example.com/save.php'); $("a.clickme").click(function(){ $('.edit').click(); }); }); 

我结合了前两个响应的强大function来定位下一个可编辑元素,如下所示:

/* Find and trigger "edit" event on next Jeditable instance. */ $(".edit_trigger").livequery( 'click', function() { $(this).next().click(); });