2010-08-21 47 views
5

Tôi không thể hiểu tại sao không hoạt động một plugin jquery (giải mã mã hóa base64) bên trong một hàm sự kiện.Thực hiện chức năng JQuery base64

Bằng cách này hoạt động:

$(document).ready(function(){ 
    data = $.base64Encode('something'); 
    alert(data); 
    }); 

Nhưng khi cố gắng thêm vào một chức năng sự kiện, tôi nhận được $ .base64Encode không phải là một chức năng lỗi

$(document).ready(function(){ 
    $('#submit').click(function(e){ 
     data = $.base64Encode('something'); 
     alert(data); 
     e.preventDefault(); 
    }); 
    }); 

Plugin JQuery được tìm thấy tại: http://plugins.jquery.com/project/base64

+0

Bạn có thể hiển thị đầu tài liệu đầy đủ không? (Ít nhất mọi thứ liên quan đến tập lệnh) –

+2

Có thể bạn đang bao gồm jQuery trong trang hai lần không? –

+0

@Nick Craver Đăng câu trả lời và sẽ chấp nhận. Đó là câu trả lời. – Pentium10

Trả lời

4

Kiểm tra rằng bạn không bao gồm jQuery gấp đôi trong trang. Điều này thực hiện lần đầu tiên tải, plugin tự định nghĩa trên rằng đối tượngjQuery và khi jQuery được bao gồm lần thứ hai, đối tượng window.jQuery bị ghi đè ... và plugin sẽ không được hiển thị :)

Bạn sẽ thấy điều này khi chạy sau, trong khi document.ready của bạn có thể được đặt trước khi bao gồm jQuery thứ 2.

+0

Vui lòng kiểm tra câu hỏi liên quan khác của bạn tôi, bạn có thể biết câu trả lời cho câu hỏi: http://stackoverflow.com/questions/3538849/zfdebug-jquery-interference – Pentium10

0

Nó phù hợp với tôi. Bạn có thể gặp phải lỗi Javascript không liên quan khiến thư viện base64 không tải chính xác.

0

trong tiêu đề tôi có

<html> 
<head> 
<title>{TITLE}</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<link rel="stylesheet" href="css/main.css" type="text/css" media="screen" /> 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script> 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js'></script> 
<script type='text/javascript' src="js/Jquery/jquery.base64.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 

    $('#submit').click(function(e){ 
     e.preventDefault(); 
     data = $.base64Encode('something'); 
    alert(data); 
    }); 
}); 

</script> 
</head> 

và một hình thức với nút gửi

<input id="submit" type="submit" name="Submit" value="Submit" class="button"> 

nhưng như tôi đã đề cập nếu tôi đặt bên ngoài chức năng nhấp chuột của các data = $.base64Encode('something'); sau đó nó hoạt động.

Làm phức tạp hơn điều tôi sử dụng Zend Framework và FastTemplate

1

Nick Craver có quyền! Tôi sử dụng Zfdebug cho khung công tác Zend và đã bao gồm JQUERY, và tôi đã bao gồm hai lần do tự động ZF bao gồm JQUERY. Cảm ơn bạn

tôi đã thực hiện một câu hỏi mới liên quan đến làm thế nào tôi có thể bao gồm chỉ một lần Jquery trong một môi trường cụ thể Zfdebug ZFdebug Jquery interference

+0

Tôi đã thực hiện một thay đổi và bao gồm các plugin trước khi bao gồm Jquery đầu tiên, bây giờ nó hoạt động, nhưng khi tôi đưa ứng dụng vào sản xuất (Điều này đưa ra sự bao gồm Jquery đầu tiên thì tôi không thể đăng ký plugin trên Jquery) trên liên kết trên – Kszili

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