如何对jquery中有一行php代码的jquery代码块进行注释


how to comment a jquery code block which has a line with php code in jquery

我想注释一个代码块,但我的javascript块中有一行同时包含jquery和php

像这个

jq('.time_slot').each(function(index) {
    var a = jq(this).autocomplete({ 
        serviceUrl:"<? echo $this->config->item('base_url'); ?>business/information/add/autocomplete",
        params: { suggessions_id:28767 }, //aditional parameters
        onSelect:function(value,data){ jq(this).trigger('change');  } 
    });
});

没有这条线

      serviceUrl:"<? echo $this->config->item('base_url'); ?>business/information/add/autocomplete",

我可以用评论这个区块

/*
*/

但现在我不能使用它,我也尝试过单行注释,比如这个

//jq('.time_slot').each(function(index) {
    //var a = jq(this).autocomplete({ 
        //serviceUrl:"<? echo $this->config->item('base_url'); ?>business/information/add/autocomplete",
       // params: { suggessions_id:28767 }, //aditional parameters
       // onSelect:function(value,data){ jq(this).trigger('change');  } 
   // });
   // });

但是对于这条线路

 serviceUrl:"<? echo $this->config->item('base_url'); ?>business/information/add/autocomplete",

它不起作用。

所以我最终得到了一个非常糟糕的解决方案,比如这个

 //serviceUrl:"
<? //echo $this->config->item('base_url'); ?>
//business/information/add/autocomplete",

评论我的代码块的最佳方式是什么,提前谢谢。

在运行时,如果启用了php配置的short_open_tag,则在将html(包含带注释的上述javascript)发送到浏览器之前,服务器中的php解析器会解析<? ?>中包含的脚本。

因此,如果您使用//注释掉这一行,从技术上讲应该是可行的,因为javascript解析器不会意识到字符串是从php生成的。

请确保已启用short_open_tag,或者使用<?php而不是短标记(<?)

好的,无可否认,这并不漂亮,但如果你想一下子取消混合的PHP和JavaScript,你可以考虑用总是返回false的PHP条件包装整个块,例如:

<?php if (1 == 0) { ?>
jq('.time_slot').each(function(index) {
    var a = jq(this).autocomplete({ 
        serviceUrl:"<? echo $this->config->item('base_url'); ?>business/information/add/autocomplete",
        params: { suggessions_id:28767 }, //aditional parameters
        onSelect:function(value,data){ jq(this).trigger('change');  } 
    });
});
<?php } ?>

我知道,这很丑陋,但不可否认,对于大块的混合代码来说,它快速有效。

您提供的解决方案再好不过了。PHP和JS注释总是分开的,您可以将JS注释放入PHP的echo函数中。

PHP解析器总是尝试在块之间运行代码。

Imho最好的解决方案是使用/*和*/注释整个JS代码,并使用单行注释来防止PHP运行PHP代码块。

这已经是最好的方法了。想不出更好的办法了。。