jQuery noconflict()打破了我的jquery代码..?

时间:2013-05-16 19:36:34

标签: php jquery joomla joomla2.5

我正在开发一个joomla 2.5组件,我在我的代码中使用了很多jQuery。 我正在使用jQuery noconflict()来避免任何冲突...... 问题在于一个非常简单的显示/隐藏jquery代码用于div,这意味着允许用户隐藏div。

$(document).ready(function(){
    jQuery('.slidingDiv').show();
    jQuery('.show_hide').show();

jQuery('.show_hide').click(function(){
jQuery('.slidingDiv').slideToggle();
}); });

每当我包含jQuery noconflict()时如下:

JFactory::getDocument()->addScriptDeclaration('jQuery.noConflict()');

上面的show / hide脚本不起作用,但是同一页面上的其他jquery脚本工作正常!

html实现:

<div class="slidingDiv">
        <a href="#" class="show_hide"><img style="float:right;"src="/images/close.png" alt="hide"></a> text here </div>

和css:

.slidingDiv {
height:85px;
background-color: #6A5C53;
padding:10px;
margin:4px auto;
margin-bottom: 10px;
border-radius: 6px;
moz-border-radius:6px;
webkit-border-radius:6px;
width:920px;
z-index: 50;}


.show_hide {
    display:none;
}

任何想法?任何帮助将非常感谢! 谢谢!

2 个答案:

答案 0 :(得分:3)

我建议使用自动调用匿名函数,这样你就可以做这样的事情而不需要jQuery.noConflict()声明:

(function($) {
  $(document).ready(function(){
    $('.slidingDiv').show();
    $('.show_hide').show();
    $('.show_hide').click(function(){
        $('.slidingDiv').slideToggle();
    });
  });
})(jQuery);

有关详细信息,请参阅http://blog.themeforest.net/tutorials/ask-jw-decoding-self-invoking-anonymous-functions/

答案 1 :(得分:1)

$应该是您的document.ready函数中的jQuery

  jQuery(document).ready(function(){
//^^^------here;