加载Jquery代码时没有触发
问题描述:
我在外部JS文件中链接到.net 1.1 webapp中的 usercontrol中的以下JQuery代码。加载Jquery代码时没有触发
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();
});
});
答
没有看到进一步的代码,请确保选择器对于新页面中的控件是正确的。
问题可能是DOM已更改为新的页面/窗口,而JQuery还不知道它。
当控制失去输入 聚焦和自获得焦点其值被修改的 change event
火灾。
您可能需要使用live event:
绑定的处理程序,为目前所有的事件(如 点击) - 和未来 - 匹配的元素。
当您绑定“活动”事件时,它将绑定到页面上所有当前和将来的 元素(使用事件 委派)。例如,如果你的约束 现场点击所有的“礼”元素上 那么页面在 以后又增加了李 - 即点击事件 继续为新元素 工作(这不符合绑定的情况下其中 必须重新绑定所有新元素)。
答
你确定新的网页有jQuery脚本包含吗?
答
确保你使用:
$(document).ready(
);
在你的整个代码块。单是美元通常不会做到这一点。
您是否检查过错误日志? – 2009-08-04 05:36:20
确保使用`$(document).ready()`。 http://docs.jquery.com/Events/ready – sepehr 2009-08-04 06:05:39