试图解决jQuery冲突

时间:2014-11-25 22:18:10

标签: jquery

我正在使用一些应用程序输出的Web代码,我在输出开始时几乎无法控制

<script type="text/javascript" src="wpscripts/jquery.js"></script>
<script type="text/javascript" src="wpscripts/jquery.wputils.js"></script>
<script type="text/javascript" src="wpscripts/jquery.validate.min.js"></script>
<script type="text/javascript">
  wpRedirectMobile('http://www.somedomainaontheweb.com/m.results.php',0);
  $(document).ready(function() {
  $("a.ActiveButton").bind({ mousedown:function(){if ( $(this).attr('disabled') === undefined ) $(this).addClass('Activated');}, mouseleave:function(){ if ( $(this).attr('disabled') === undefined ) $(this).removeClass('Activated');}, mouseup:function(){ if ( $(this).attr('disabled') === undefined ) $(this).removeClass('Activated');}});
  $("#form_2").validate({ onkeyup: false, showErrors: function(errorMap, errorList) { if (errorList.length) alert(errorList[0].message); }, onclick: false, rules: { 'Property_Price': { number: true } , 'Deposit': { number: true } , 'Duration': { number: true } , 'InterestRate': { number: true }  }, onfocusout: false, messages: { 'Property_Price': { number: "Please enter the property purchase price." } , 'Deposit': { number: "Please enter your deposit amount or 0 if there is no deposit." } , 'Duration': { number: "Please enter the duration of the mortgage." } , 'InterestRate': { number: "Please enter the mortgage interest rate." }  } });
  $('#btn_4').click( function(){validate_form_2( form_2 )});
  });
</script>

但在中间附近我必须添加以下代码;

<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="scripts.js"></script>

<!-- Used to display the finger pointer image if the number of results pages exceeds 14, for mobile devices -->
<script type="text/javascript">
$(document).ready(function() {
if (<?php echo $totalpage?> > 14) {
    $('#fpointer').show();
}
});
</script>

因此,第二个代码块不再起作用,因为出现了jquery冲突。如果我能够更改第一个代码块,我可以使用没有冲突来解决问题但我无法访问它。如果我删除第二次调用jquery它可以工作,但我需要第二次调用,因为在其他页面上应用程序不包含第一个代码块,因此不包含jquery。

因为没有冲突只有在你第一次调用jquery时才会有效,我才会被卡住,有没有办法通过操纵第二块代码来解决这个冲突。

1 个答案:

答案 0 :(得分:0)

你可以测试jQuery已经存在,只加载第二个,如果它没有:

<script>
    if(!window.jQuery) {
        document.write('<script type="text/javascript" src="jquery-1.7.1.min.js"><\/script>');
    }
</script>
<script type="text/javascript" src="scripts.js"></script>

我不是使用document.write的粉丝,但我认为需要确保在其余代码尝试运行之前插入脚本。