[英]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 } ?>
我知道这很丑,但是对于混合代码的大块来说,无疑是快速而有效的。
Afaik没有您提供的更好的解决方案。 PHP和JS注释始终是分开的,您可以将JS注释放入PHP的echo函数中。
PHP解析器将始终尝试在块之间运行代码。
Imho最好的解决方案是使用/ *和* /注释整个JS代码,并使用单行注释来防止PHP运行php代码块。
那已经是最好的方法了。 想不到更好的方法了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.