【发布时间】:2012-02-10 12:49:07
【问题描述】:
我继承了一个 jquery 组件,它模拟一个下拉菜单供用户选择。
可以在http://jsfiddle.net/Qg9f4/2/ 看到该组件,它似乎工作正常。
但是,我们正在尝试将所有脚本命名为单个文件。一般来说,根据this thread,这可以正常工作。但是,当我们使用相同的命名空间技术时,该组件将停止工作。初始化脚本似乎在 $(document).ready 上解析得很好,但是当组件被点击时实际上什么都没有发生。
我已经在 jsfiddle 中评论了哪些功能有效,哪些无效。
这行得通
$(document).ready(function () {
$(".dselector dt a").click(function () {
$(".dselector dd ul").toggle();
});
$(".dselector dd ul li a").click(function () {
$(".dselector dd ul").hide();
});
$(document).bind('click', function (e) {
var $clicked = $(e.target);
if (!$clicked.parents().hasClass("dselector")) $(".dselector dd ul").hide();
});
});
这不起作用
$(document).ready(zxcf.init());
var zxcf = {
init: function() {
$(".dselector dt a").click(function () {
$(".dselector dd ul").toggle();
});
$(".dselector dd ul li a").click(function () {
$(".dselector dd ul").hide();
});
$(document).bind('click', function (e) {
var $clicked = $(e.target);
if (!$clicked.parents().hasClass("dselector")) $(".dselector dd ul").hide();
});
}
};
【问题讨论】:
-
请在此处发布您的代码。我讨厌不得不去 jsFiddle 看看被问到什么。
-
代码添加到上面的帖子
标签: javascript jquery namespaces