我无法弄清楚为什么在事件函数中没有使用jquery插件(base64编码解码)。
这种方式有效:
$(document).ready(function(){
data = $.base64Encode('something');
alert(data);
});
但是当尝试添加事件函数时,我得到 $ .base64Encode不是函数错误
$(document).ready(function(){
$('#submit').click(function(e){
data = $.base64Encode('something');
alert(data);
e.preventDefault();
});
});
Jquery插件位于: http://plugins.jquery.com/project/base64
答案 0 :(得分:4)
检查您是否在页面中没有包含两次jQuery。这样做的第一个加载,插件在 jQuery
对象上定义自己,当第二次包含jQuery时,window.jQuery
对象被覆盖...并且插件不会在其上:)
稍后运行时会看到这个,而document.ready
可能位于第二个jQuery包含之前。
答案 1 :(得分:1)
Nick Craver有权利!我使用Zfdebug作为Zend框架并且已经包含了JQUERY, 由于ZF aut包括JQUERY,我加入了两次。谢谢
我提出了一个新问题,我怎么能在Zfdebug特定环境中只包含一次Jquery ZFdebug Jquery interference
答案 2 :(得分:0)
它对我有用。您可能有一个无关的Javascript错误导致base64库无法正确加载。
答案 3 :(得分:0)
<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>
以及带有提交按钮的表单
<input id="submit" type="submit" name="Submit" value="Submit" class="button">
但正如我所提到的,如果我将点击功能置于data = $.base64Encode('something');
之外,那么它就可以了。
更复杂的是我使用Zend Framework和FastTemplate