2008-12-14 21 views
14

我試圖使用Jeditable作爲內聯編輯解決方案。Jeditable - 通過點擊激活X的編輯Y

默認行爲(點擊元素進行編輯)效果很好,但我想通過單擊另一個元素來激活元素。

例如,點擊a.activateEdit將激活下一個div.edit(顯然應該使用jQuery選擇器來完成)。

我看着這個Jeditable文檔,但無法找到正確的語法

僅供參考,默認Jeditable語法是沿着線的東西:

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

*編輯:找到a better solution *

+0

我知道你的問題被問了一段時間,但我目前正試圖實現一些非常相似的東西。我有它的點擊鏈接工作,但有沒有辦法刪除你想編輯的元素的點擊事件?換句話說,只能編輯可編輯的元素,可以從鏈接編輯,而不是專門點擊它的時候。謝謝。 – 2011-05-18 20:50:57

+0

您可以嘗試unbind()以刪除該對象的單擊事件綁定。 – yoavf 2011-05-19 08:19:14

回答

24

以上代碼也不完全正確。它觸發ALL 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"); 
}); 
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'); 
}); 
}); 
2

好吧,Ata's answer並沒有完全工作,但它沒有把我在正確的道路上:

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

我已將前兩個響應的能力組合爲下一個可編輯元素的目標,如下所示:

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