在文件javascript中使用$ .subscribe

时间:2014-06-26 15:28:45

标签: javascript jquery struts2 jqgrid

当我在文件javascript中使用示例$.subscribe('grillaCompleta',function(){...};的方法时,这不起作用;但是如果我在同一个jsp页面中使用,那就工作吧。

工作:

<script type="text/javascript">
$.subscribe('grillaCompleta',function(){...};
</script>

不工作,如果代码在JavaScript文件中:

<script type="text/javascript" src="js/codigoJavaScript.js"></script>

codigoJavaScript.js简称:

function OnChangeTurnoMarcacion(event){
$('#txtBuscar').val('');
$('#grilla').jqGrid('setGridParam',{url:'cargarMarcacion.html?                       
idperiodo='+$('#cboPeriodos').val()+'&idcentrocosto='+$('#cboUnidades')
.val()+"&turno="+event.value}).trigger('reloadGrid');
 };
$.subscribe('grillaCompleta',function(){
var grid = $("#grilla");
var ids = grid.jqGrid("getDataIDs");

for ( var i = 0; i < ids.length; i++) {
    var id = ids[i];
    var row = grid.jqGrid("getRowData",id);
    for ( var j = 1; j < 32; j++) {
        if (j<10){
            var color = row["d0"+j+"_c"];
            grid.jqGrid('setCell',id,'d0'+j,'',{'background-color':color},{'title':j});             
        }else{
            var color = row["d"+j+"_c"];
            grid.jqGrid('setCell',id,'d'+j,'',{'background-color':color},{'title':j});
        }               
    }
  } 
});
function OnChangePeriodoMarcacion(event){
$('#txtBuscar').val('');
$('#grilla').jqGrid('setGridParam',{url:'cargarMarcacion.html?
idperiodo='+event.value+'&idcentrocosto='+$('#cboUnidades')
.val()+"&turno="+$('#cboTurnos').val()}).trigger('reloadGrid'); 
 };

好的做法是将文件javascript中的所有代码都包含在内。

1 个答案:

答案 0 :(得分:0)

$.subsribe()实际上已绑定到文档,因此请确保文档已准备就绪。

$(document).ready(function(){
 $.subscribe(...);
 ...
}); 

请注意,javascript中的函数不需要以分号结尾。