我有一个需要使用mootools日历的应用程序,但是,我使用jquery作为我的主应用程序结构。
一旦我使用jquery进行mootools,既没有工作,当我只有一个时,他们工作正常。我做了一些调查,说我可以使用一种名为.noconflict的方法,虽然我已经尝试过,但我还没有解决我的问题。也许有人可以更好地向我解释在哪里进行实际的.noconflict调用,也许可以帮助我实现这一点。
谢谢!
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var fixHeight = function () {
var gutter = 50;
var newHeight = $(window).height() - (gutter*2);
$('#container').height(newHeight);
}
$(function(){
fixHeight();
$('ul#nav li.item').each(function(index) {
if ($(this).attr("name") == "media") {
$(this).attr("id","active");
}
});
$('input').focus(function() {
$(this).attr("value","");
}).blur(function() {
$(this).attr("value",$(this).attr("original-value"));
});
$(window).resize(function() {
fixHeight();
}).load(function() {
fixHeight();
});
});
</script>
<script type="text/javascript" src="http://taptouchclick.com/js/mootools-1.2.4-core-yc.js"></script>
<script type="text/javascript">
window.addEvent('domready', function(){
var smoothCalendar = new SmoothCalendar("calendar");
});
</script>
答案 0 :(得分:2)
是的,noConflict
方法应该有效,但如果没有,或者你想以另一种方式进行,你应该将脚本封装在自调用函数中,并将参数设置为主要库对象:
(function($){
// al your jquery logic here
alert($ instanceof jQuery);
})(jQuery)
之后,你应该包括下一个库(在你的情况下是MooTools)并正常编写脚本,或者 - 非常肯定 - 你也可以将MooTools逻辑封装在一个函数中。
答案 1 :(得分:1)
如果你只是打电话,你应该没事。
jQuery.noConflict();
...在包含Mootools JS文件之前。
然后,您可以使用jQuery
代替$
来使用jQuery函数。例如:
jQuery('.selector').hide(); // instead of $('.selector').hide();
答案 2 :(得分:0)
您还可以通过DOM-ready事件传递$
:
$.noConflict();
// Non-jQuery code goes here
jQuery(document).ready(function($) {
// You can now use the dollar sign safely inside of this function
}