0

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


主文件.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
});

}

//结尾

4

1 回答 1

1

如果要jQuery在同一页面上使用多个版本,则必须noConflict()先加载第二个版本。由于您的 PHP 包含只是将两个文件的内容拉到一起,因此您最终会得到:

<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>

你真正想要的是:

<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变量中。上面的代码将提醒使用的变量和每个变量的版本。您可以在此处查看使用 Google API 托管库的示例:http: //jsfiddle.net/2kX3E/

于 2012-10-28T23:20:33.607 回答