Tôi khá mới trong đội ngũ phát triển của chúng tôi.
Tôi cần một số lập luận mạnh mẽ và / hoặc "ví dụ" cạm bẫy ", vì vậy cuối cùng ông chủ của tôi sẽ hiểu được những lợi thế của JavaScript không phô trương, để anh ấy và các thành viên khác trong nhóm ngừng làm những việc như thế này:
<input type="button" class="bow-chicka-wow-wow"
onclick="send_some_ajax(); return false;" value="click me..." />
và
<script type="text/javascript">
function send_some_ajax()
{
// bunch of code ... BUT using jQuery !!!
}
</script>
Tôi đề nghị sử dụng một mô hình khá phổ biến:
<button id="ajaxer" type="button">click me...</button>
và
<script type="text/javascript">
// since #ajaxer is also delivered via ajax, I bind events to document
// -> not the best practice but it's not the point....
$(document).on('click', '#ajaxer', function(ev) {
var $elem = $(this);
ev.preventDefault();
});
Lý do tại sao ông chủ của tôi (và những người khác) không muốn sử dụng phương pháp này là vì Kiểm tra sự kiện trong FireBug (hoặc Chrome Dev Tools) không còn đơn giản nữa, ví dụ như với
<input type="text" name="somename" id="someid" onchange="performChange()">
anh ta có thể thấy ngay hàm nào thực thi trên sự kiện thay đổi và chuyển ngay đến nó trong một tệp JS lớn chứa đầy mã spaghetti .
Trong trường hợp JavaScript không phô trương, điều duy nhất anh ta sẽ thấy là:
<input type="text" name="somename" id="someid" />
và anh ta không biết liệu một số sự kiện, nếu có, bị ràng buộc với yếu tố này và chức năng nào sẽ được kích hoạt.
Tôi đang tìm kiếm một giải pháp và tìm thấy nó:
$(document).data('events') // or .. $(document).data('events').click
nhưng, "cách tiếp cận" này khiến nó mất "quá lâu ..." để tìm ra chức năng nào kích hoạt sự kiện nào, vì vậy tôi được yêu cầu dừng các sự kiện ràng buộc như thế.
Tôi đang hỏi bạn một số ví dụ hoặc lợi thế mạnh mẽ hoặc bất kỳ loại đề xuất nào khác cho "Tại sao chúng ta nên sử dụng UJS"
CẬP NHẬT: đề nghị "thay đổi công việc" không phải là một giải pháp lý tưởng.
CẬP NHẬT 2: Ok, tôi không chỉ đề xuất sử dụng ràng buộc sự kiện jQuery, tôi đã làm như vậy . Sau khi tôi viết tất cả Phái đoàn sự kiện, ông chủ đến gặp tôi và hỏi tôi, tại sao tôi lại làm phái đoàn sự kiện với cách tiếp cận và cách tiếp cận khác nhau mà anh ta không biết
Tôi đã đề cập đến một số lợi ích rõ ràng, như - Có 15 trường đầu vào và tất cả sau đó đều có một onchange
sự kiện (không chỉ, một số trong số chúng cũng có onkeyup
) Vì vậy, sẽ thực tế hơn khi viết loại ủy nhiệm sự kiện này cho TẤT CẢ các trường đầu vào, thay vì làm điều đó 15 lần, đặc biệt là nếu tất cả các HTML sẽ được hiển thị với tiếng vang của PHP ->echo '... <input type="text" id="someid" ... />...'
js-this-class-do-something
lớp, vì vậy, bạn có thể dễ dàng CTRL + F cho nó trong mã.