15

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

默认行为(单击元素进行编辑)效果很好,但我想通过单击另一个元素来激活一个元素。

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

我为此查看了 Jeditable 文档,但找不到正确的语法

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

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

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

4

4 回答 4

24

上面的代码也不是很正确。它在所有 Jeditable 实例上触发点击事件。

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

<div class="edit" id="unique_id">Editable text</div> 
<a href="#" class="edit_trigger">Edit me!!</a>

然后您可以使用以下 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");
}); 
于 2009-07-10T10:58:18.613 回答
2

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

HTML:

<a class="clickme">Click me to edit</a>
<div class="edit">Edit Me!</div>

jQuery:

$(document).ready(function() {
$("a.clickme").click(function(){
     $('.edit').editable('http://www.example.com/save.php');
});
});
于 2008-12-14T16:40:15.893 回答
2

好的,Ata 的回答不太奏效,但它确实让我走上了正确的道路:

$(document).ready(function() {
    $('.edit').editable('http://www.example.com/save.php');
    $("a.clickme").click(function(){
          $('.edit').click();
   });
});
于 2008-12-14T22:08:27.433 回答
1

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

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

于 2009-11-06T06:59:57.597 回答