2009-12-03 10 views
7

Tôi đã chơi đùa với jeditable được 2 ngày rồi, và thật tuyệt! Tuy nhiên, tôi có một chút vấn đề, tôi có một liên kết có thể chỉnh sửa được, nhưng bất cứ khi nào trường có thể chỉnh sửa được, tôi không thể chỉnh sửa trường đó, khi tôi nhấp vào, nó nhảy ngay tới liên kết đó.Có thể chỉnh sửa để chỉnh sửa liên kết. Giúp

Bất kỳ giải pháp nào?

Đây là mã của tôi

<a href="$homeurl/$hashkey" class="editsubject" id="$hashkey">$subject</a><span class="edittrigger" style="cursor:pointer;background:#EEEEEE;">edit</span> 


$(document).ready(function() { 
      $('.editsubject').editable('editsubject.php', { 
        event : 'editclick', 
        cancel : 'Cancel', 
        submit : 'OK', 
        indicator : 'Wait...', 
        id : 'hk', 
        name : 'ns', 
        css : 'inherit' 
      }); 
      $('.edittrigger').bind('click', function() { 
       $(this).prev().trigger('editclick'); 
      }); 
     }); 

Cảm ơn

+2

Tôi tự hỏi tại sao bạn cần văn bản liên kết có thể chỉnh sửa được? Làm thế nào để bạn có ý định người dùng nhấp vào liên kết để theo liên kết và nhấp vào liên kết để chỉnh sửa văn bản? Bạn có thể muốn xem xét việc tách riêng 2. –

+0

Tôi đang sử dụng trình kích hoạt riêng để chỉnh sửa tiêu đề liên kết. Vì vậy, khi người dùng nhấp vào liên kết, họ sẽ theo liên kết và khi họ nhấp vào liên kết chỉnh sửa, tiêu đề liên kết sẽ trở thành có thể chỉnh sửa. – Santana

+0

Tôi đang gặp chính xác cùng một vấn đề. Bạn đã quản lý để giải quyết nó? – zaius

Trả lời

7

vấn đề jEditable, đây là một workaround

Tôi sẽ sử dụng một khoảng ẩn và sau đó có nó thay thế các văn bản của các liên kết trên gửi, và khi bạn nhấp vào trình kích hoạt, hãy tạo liên kết ẩn và hiển thị khoảng ẩn

<script type='text/javascript'> 
$(document).ready(function() { 
    $('.proxyedit').editable('editsubject.php', { 
     event : 'editclick', 
     cancel : 'Cancel', 
     submit : 'OK', 
     indicator : 'Wait...', 
     id : 'hk', 
     name : 'ns', 
     css : 'inherit', 
     callback : function(value, settings) { 
      $(this).css({'display':'none'}); 
      $('.editsubject').text($(this).text()).css({'display':'inline'}); 
     } 

    }); 
    $('.edittrigger').bind('click', function() { 
     $(this).prev().trigger('editclick'); 
     $('.proxyedit').css({'display':'inline'}); 
     $('.editsubject').css({'display':'none'}); 
    }); 
}); 
</script> 

trong phần nội dung

<a href="$homeurl/$hashkey" class="editsubject" id="$hashkey">$subject</a><span style="display:none;" class="proxyedit">$subject</span><span class="edittrigger" style="cursor:pointer;background:#EEEEEE;">edit</span> 
2

Sử dụng javascript để tắt liên kết trong trường hợp có chứa biểu mẫu. Công việc đã hoàn thành:

$(document).ready(function() { 
    $('a.my-editable-link').click(function() { 
    form = $(this).find('form'); 
    if (form.length) { 
     form.submit(); 
     return false; 
    } else { 
     return true; 
    } 
    } 
}) 
1

Bạn có thể tắt các liên kết có thể chỉnh sửa được với jQuery. Một cái gì đó như:

$(".editable a").bind("click", function(event) { 
    return false; 
});