2015-09-25 17 views
5

Làm việc với JQuery cần đăng ký trên trang tải đầu tiên và sau đó gửi lại bài đăng Ajax. kiểm soát việc áp dụng điều này là bên trong bảng cập nhật. bây giờ những gì tôi đang làmĐăng ký jquery khi tải trang và đăng lại ajax sau

Đăng ký cùng một chức năng theo cả hai cách như trong document.readysys.application.add.load để nó hoạt động cho điều khiển nằm trong bảng cập nhật và kiểm soát nằm ngoài bảng cập nhật.

$(document).ready(function() { 

    CheckMaxlength(); 

    //If Text area is placed inside update panel then apply restriction for texarea size. 

    Sys.Application.add_load(function() { 

    CheckMaxlength(); 

    }); 
}); 

Tôi muốn biết một cách chính xác khi làm việc với các điều khiển mà là bảng cập nhật trong và ngoài bảng cập nhật

+0

Tôi không chắc chắn 100% những gì bạn đang yêu cầu. Tôi nghĩ tôi có được ý tưởng cơ bản. Nếu bạn có thể làm rõ, tôi có thể trả lời điều này tốt hơn cho bạn. Ví dụ, CheckMaxLength() làm gì? Nếu bạn đặt câu hỏi của mình cụ thể hơn, tôi có thể làm cho câu trả lời của tôi cụ thể hơn. –

+0

CheckMaxlength() được sử dụng để hạn chế tối đa cho trước khi nhập. – Liquid

Trả lời

0

Tôi không tích cực những gì bạn muốn làm là gì, nhưng tôi nghi ngờ delegated events có lẽ câu trả lời của bạn.

Sự kiện được ủy quyền có lợi thế là họ có thể xử lý sự kiện từ các phần tử con cháu được thêm vào tài liệu sau này. Bằng cách chọn một yếu tố đảm bảo sẽ có mặt tại thời điểm xử lý sự kiện giao được đính kèm, bạn có thể sử dụng giao các sự kiện để tránh sự cần thiết phải thường xuyên gắn và gỡ bỏ xử lý sự kiện.

Ví dụ, bạn có thể thêm chức năng cho tất cả textarea bất kể khi chúng được thêm vào trang với

$("body").on("click", "textarea", function() { 
    alert($(this).val()); 
}); 

Lợi ích đầu tiên cho tình hình của bạn là bất kỳ textarea bổ sung vào bảng cập nhật bất cứ lúc nào điểm sẽ nhận được chức năng được ủy nhiệm.

Hơn nữa, nếu bạn muốn nhắm mục tiêu hành vi khác nhau cho văn bản trong bảng cập nhật và bên ngoài bảng cập nhật, bạn cũng có thể làm điều đó.

$("body").on('click', 'textarea', function() { 
    alert("outside" + $(this).val()); 
}); 

$(".update-panel").on('click', 'textarea', function() { 
    alert("inside: " + $(this).val()); 

    //stop the event from propagating up to the body 
    event.stopPropagation(); 
}); 

Ngoài ra, lưu ý rằng chỉ bodyupload-container cần phải sẵn sàng khi mã này được chạy. Nó không cần văn bản để có được ở đó, vì vậy bạn không cần phải chạy điều này bên trong Sys.Application.add_load.

Các vấn đề liên quan