jquery noConflict不在php中工作include()

时间:2012-10-28 19:43:05

标签: jquery php-include

当使用php包含从exernal文件加载时,jquery.noConflict由于某种原因不起作用? aslo注意到也许某些脚本也没有完全加载?


mainfile.php中

<script type="text/javascript" src="js.jquery/jquery.1.8.2.min.js"></script>

<?
include 'extrn_file.php';
?>

//结束

// extrn_file.php

<script type="text/javascript" src="js.jquery/jquery.1.3.2.min.js"></script>
<script> $jq132 = jQuery.noConflict(true); </script>
<script type="text/javascript" src="js/animate.js"></script>

<script type="text/javascript">
execute_skills_doc();

function execute_skills_doc(){
$jq132(document).ready(function() {
alert("yes");//nothing happens
});

}

//结束

1 个答案:

答案 0 :(得分:1)

如果要在同一页面上使用多个版本的jQuery,则必须在加载第二个版本之前noConflict()使用<script type="text/javascript" src="js.jquery/jquery.1.8.2.min.js"></script> <script type="text/javascript" src="js.jquery/jquery.1.3.2.min.js"></script> <script> $jq132 = jQuery.noConflict(true); </script> 。由于您的PHP只包含两个文件的内容,因此最终得到:

<script type="text/javascript" src="js.jquery/jquery.1.8.2.min.js"></script>
<script type="text/javascript"> 
    // set version 1.8.2 to variable and remove globals
    $jq182 = jQuery.noConflict(true); 
</script>
<script type="text/javascript" src="js.jquery/jquery.1.3.2.min.js"></script>
<script type="text/javascript">
    // return jQuery version
    function getVersion(jq){
        return jq().jquery;
    }

    // set version 1.3.2 to variable and remove globals
    $jq132 = jQuery.noConflict(true); 
    // reset jQuery variable to 1.8.2
    jQuery = $jq182.noConflict();

    // your code that uses $ variable and jQuery 1.3.2
    (function($){
        $(document).ready(function(){ alert('Using $ v'+getVersion($)+'!'); });
    })($jq132);

    // your code that uses $ variable and jQuery 1.8.2
    (function($){
        $(document).ready(function(){ alert('Using $ v'+getVersion($)+'!'); });
    })($jq182);

    // your code that uses jQuery variable and jQuery 1.8.2
    jQuery(document).ready(function(){ alert('Using jQuery v'+getVersion(jQuery)+'!'); });

</script>​

你真正想要的是:

1.8.2

此时,您会在$jq182jQuery变量中加载1.3.2版本,并将$jq132加载到{{1}}变量中。上面的代码将提醒使用的变量和每个变量的版本。您可以在此处查看使用Google API托管库的示例:http://jsfiddle.net/2kX3E/