停止两个jquery之间的冲突

时间:2014-05-05 11:56:30

标签: php jquery mysql codeigniter jquery-ui

我正在使用一个基于Web的软件,该软件内置于" codeigniter"。在这个软件中,他们使用了jQueryUI,bootstrap JQuery等。

这里我想实现内联编辑功能。我成功实现了它,但是在实现内联编辑功能之后,由于两个jQuery之间的冲突,其他功能无法正常工作。

这是我添加的jquery代码:

<script>

        $(document).ready(function(){
        $('div.auto').click(function(){

                $('.ajax').html($('.ajax input').val());
                $('.ajax').removeClass('ajax');
                $(this).addClass('ajax');
                $(this).html('<input id="editbox" size="'+$(this).text().length+'" type="text" value="' + $(this).text() + '">');

                $('#editbox').focus();

          }
          );
</script>

我还在上面的代码之前放下了代码来阻止jQuery冲突:

<script>
$.noConflict();
// Code that uses other library's $ can follow here.
</script>

1 个答案:

答案 0 :(得分:1)

https://api.jquery.com/jQuery.noConflict/ - $.noConflict()释放对$的控制权,并为其指定之前分配给它的值。在页面下方,您可以看到:

  

示例:加载两个版本的jQuery(不推荐)。然后,   将jQuery的全局范围变量恢复到第一个加载的变量   jQuery的。

<div id="log">
  <h3>Before $.noConflict(true)</h3>
</div>
<script src="//code.jquery.com/jquery-1.6.2.js"></script>

<script>
var $log = $( "#log" );

$log.append( "2nd loaded jQuery version ($): " + $.fn.jquery + "<br>" );

// Restore globally scoped jQuery variables to the first version loaded
// (the newer version)

jq162 = jQuery.noConflict( true );

$log.append( "<h3>After $.noConflict(true)</h3>" );
$log.append( "1st loaded jQuery version ($): " + $.fn.jquery + "<br>" );
$log.append( "2nd loaded jQuery version (jq162): " + jq162.fn.jquery + "<br>" );

除此之外,不要在全球范围内使用$。切勿在全局范围内使用$。仅将其用作需要的本地参数。

jQuery(document).ready(function($) {
    //you may now safely use $ inside here. Or if you pass a different parameter - use that
});

替代:

jQuery(document).ready(function(jq) {
    //you may now safely use jq inside here. Or if you pass a different parameter - use that
    jq("#mydiv").addClass('ajax');
    //now that $ is not jQuery, but another library, you can also use that library
    $.nonJQueryFunctionOfSomeOtherLibraryUsing$Symbol();
});