Javascript函数在document.ready()下不能正常工作


javascript functions not working properly under document.ready()

每当我尝试添加第二个函数时,JavaScript就停止在页面上工作。你们能帮我解决可能的错误吗?谢谢。

注意:如果我注释掉第二个函数,它可以正常工作,PHP代码是CaKePHP的一个元素。

<script type="text/javascript">
    $(document).ready(function() {
        $("#is_sublet").click(function() {
            $("#sublet_dates").slideToggle();
            return false;
        });
    });
    $(document).ready(function() {
        $("#custom_rates").click(function() { 
            $(".avi_specialrates").append($('<?php echo $this->element('custom_price_per_night', array('config' => 'sec')); ?>');
            return false;
        }); 
    }); 
</script>

这一行:

$(".avi_specialrates").append($('<?php echo $this->element('custom_price_per_night', array('config' => 'sec')); ?>');

需要在末尾再加一个右括号:

$(".avi_specialrates").append($('<?php echo $this->element('custom_price_per_night', array('config' => 'sec')); ?>'));

如果你删除PHP,它更容易看到:

$(".avi_specialrates").append($('<PHP WENT HERE>')/*right here you need a `)`*/;

有这样的错误将阻止页面上的JavaScript正常运行

我想你有一个语法错误。变化:

 $(".avi_specialrates").append($('<?php echo $this->element('custom_price_per_night', array('config' => 'sec')); ?>');

 $(".avi_specialrates").append($('<?php echo $this->element('custom_price_per_night', array('config' => 'sec')); ?>'));

缺少一个括号

应该可以。

<script type="text/javascript">
$(document).ready(function() {
   $("#is_sublet").click(function() {
   $("#sublet_dates").slideToggle();
   return false;
   });
    $("#custom_rates").click(function() { 
    $(".avi_specialrates").append($('<?php echo $this->element('custom_price_per_night', array('config' => 'sec')); ?>'));
    return false;
    });
}); 
</script>

而不是声明(document)。准备两次,试着这样做:

<script type="text/javascript">
    $(document).ready(function(){
          $("#is_sublet").click(function()
          {
              $("#sublet_dates").slideToggle();
              return false;
    });
    $("#custom_rates").click(function()
    { 
        $(".avi_specialrates").append($('<?php echo $this->element('custom_price_per_night', array('config' => 'sec')); ?>');
        return false;
    }); 
}); 
</script>