我将以下JQuery代码链接到一个外部JS文件中 用户控制在.Net 1.1 webapp。
usercontrol是时间表。
当页面加载时,它调用MonthChange并在一个页面中正常工作。
但现在我想将时间表/用户控件加载到另一个中 在新的浏览器窗口中弹出一个网页进行打印。
问题是我的MonthChange没有解雇。
任何想法为什么???
$(function() {
MonthChange();
//TestData();
$('[class^=TSGridTB]').blur(function() {
var day = GetDay($(this).attr('id'));
var date = GetRowDate(day);
var bgcolor = GetInputFieldColor(date, false);
$(this).css("background-color", bgcolor);
$(this).parent().css("background-color", bgcolor);
//CalcHours($(this).get(0));
});
$('[class^=TSGridTB]').focus(function() {
var day = GetDay($(this).attr('id'));
var date = GetRowDate(day);
var bgcolor = GetInputFieldColor(date, true);
$(this).css("background-color", bgcolor);
$(this).parent().css("background-color", bgcolor);
});
$('[id$=lstMonth]').change(function() {
MonthChange();
});
});
答案 0 :(得分:0)
没有看到更多代码,请确保选择器对于新页面中的控件是正确的。
问题可能是DOM已经针对新的页面/窗口进行了更改,而JQuery还不知道它。
当控件丢失输入时,触发 焦点及其价值已被修改 自从获得关注。
您可能想要使用live event:
将处理程序绑定到事件(如 点击)了解所有当前和未来 - 匹配元素。
当你绑定一个“实时”事件时,它会 绑定所有当前和未来 页面上的元素(使用事件 代表团)。例如,如果你绑定 实时点击所有“li”元素 页面然后在a处添加了另一个li 以后的时间 - 点击事件会 继续为新元素工作 (这不是绑定的情况 必须重新绑定所有新元素。)
答案 1 :(得分:0)
您确定新网页包含jQuery脚本吗?
答案 2 :(得分:0)
确保您正在使用:
$(document).ready(
);
围绕整个代码块。单独的$往往不能解决问题。