我正在使用jquery e JSF来构建我的应用程序的页面。在每个ajax请求之后,我需要绑定一些函数,比如mask,form messages等。
我的问题是在$(function()
之外,我无法访问插件:
(function($) {
// call setMask function on the document.ready event
$(function() {
// calling a function, the plugin is undefined.
initMsgForm();
// calling here, it works.
if (typeof $.fn.areYouSure !== 'undefined') {
$('#myForm').areYouSure({
'message' : 'You have unsaved data'
});
}
});
})(jQuery);
function initMsgForm() {
if (typeof $.fn.areYouSure !== 'undefined') {
$('#myForm').areYouSure({
'message' : 'Você tem informações não salvas'
});
}
}
为什么我无法访问我的函数中的插件?
编辑: 这两个函数都在同一个文件中#main; js" 我包含js文件的xhtml:
<h:head>
<f:facet name="first">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title></title>
</f:facet>
<f:facet name="middle">
<h:outputStylesheet name="bootstrap/css/bootstrap.css" />
<h:outputStylesheet name="css/dashboard.css" />
<h:outputStylesheet name="css/main.css" />
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" />
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js" />
<script
src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.6.0/ui-bootstrap-tpls.min.js" />
<h:outputScript name="js/jquery.are-you-sure.js" />
<h:outputScript name="bootstrap/js/bootstrap.js" />
<h:outputScript name="js/meiomask.min.js" />
<h:outputScript name="js/main.js" />
</f:facet>
<f:facet name="last">
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jquery.meiomask/1.1.14/meiomask.min.js" />
<h:outputStylesheet name="css/font-awesome.css" />
</f:facet>
答案 0 :(得分:0)
我发现了问题。我试图加载jQuery。默认情况下,primefaces已经加载了jQuery,所以我包含了两次。我删除了jQuery声明,现在它可以工作。