如果$ thisPage等于特定页面,则结束函数

时间:2016-02-03 17:48:42

标签: javascript php

我想阻止某些功能在某些页面上运行。例如,我将<?php $thisPage="services"; ?>放在我的服务页面顶部,将我的脚本放在我的script.js中。我尝试使用return;退出,但这只会破坏所有页面上的所有内容。看起来如此直截了当,为什么这不起作用?

$(window).on('scroll resize', function() {
var self = $(this),
height = self.height(),
top = self.scrollTop();

// ** Stop this code from running on the services page **
if ($thisPage=="services") {
  return;
}

// but keep running on all other pages
if (($(window).width() >= 550) && ($(this).scrollTop() > 550)) {

  $('nav#menu').fadeIn(500);
} else if (($(window).width() >= 550) && ($(this).scrollTop() < 550)) {
  $('nav#menu').fadeOut(500);
} else {
  $('nav#menu').hide();
}

});

2 个答案:

答案 0 :(得分:4)

你在这里错误地混合了PHP和JavaScript:

if ($thisPage=="services") {...

您要做的是在加载页面时使用PHP设置JavaScript变量:

<?php echo "var foo = $thisPage"; ?>

然后在JavaScript测试中使用foo

if (foo=="services") {...

答案 1 :(得分:3)

看起来像是php和javascript的混合,但php不在php标签内,因此不会被执行。您可以尝试使用php设置变量,然后在javascript中进行测试。

<script>
    <?php
        echo "var page='$thisPage';";
    ?>
    $(window).on('scroll resize', function() {
        var self = $(this),
        height = self.height(),
        top = self.scrollTop();

        if( page=='services' ) return;

        // but keep running on all other pages
        if (($(window).width() >= 550) && ($(this).scrollTop() > 550)) {

          $('nav#menu').fadeIn(500);
        } else if (($(window).width() >= 550) && ($(this).scrollTop() < 550)) {
          $('nav#menu').fadeOut(500);
        } else {
          $('nav#menu').hide();
        }
    });
</script>