#javascript #jquery #struts2 #jqgrid
#javascript #jquery #распорки 2 #jqgrid
Вопрос:
Когда я использую методы, например $.subscribe('grillaCompleta',function(){...};
, в файле javascript, это не работает; но если я использую на той же странице 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() 'amp;idcentrocosto=' $('#cboUnidades')
.val() "amp;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 'amp;idcentrocosto=' $('#cboUnidades')
.val() "amp;turno=" $('#cboTurnos').val()}).trigger('reloadGrid');
};
Хорошей практикой является наличие всего кода в файле javascript.
Комментарии:
1. Когда вы перемещаете его во внешний файл, он все
gridComplete
еще находится в области видимости?2. Опечатка?
'gridComplete'
против.'gridComplet'
3. Имя события — gridComplet, проблема не в этом.
4. Что такое код в файловом JavaScript?
5. @RomanC, я обновил запрос.
Ответ №1:
На самом $.subsribe()
деле он привязан к документу, поэтому убедитесь, что документ готов.
$(document).ready(function(){
$.subscribe(...);
...
});
Обратите внимание, что функции в javascript не требуют конечной точки с запятой.