我正在努力让编码变得更加容易,因此我分配了一个全局编码。
var parent = $(this).parent().parent().parent();
var parentModule = $(this).parent().parent().parent().parent();
我通过我的代码使用这些来使$(this)更容易并节省所有父母。虽然$(this)在技术上是普遍的,但在某个特定事件中(点击,悬停等)
有没有办法实际做到这一点,因为我认为这不可能像我写它的方式。 也许是一个功能或什么?
var parent, parentModule = null;
function getParents(e){
parent = $(e.currentTarget).closest(".module");
parentModule = $(e.currentTarget).closest(".module").parent();
}
$(close).on('click',function (e) {
getParents(e);
if (parentModule.hasClass('open')) {
var a = ReadCookie('ToHide');
if (a.split(",").length === 0) {
KillCookie('ToHide');
var b = "#"+parent.attr("id") + " #"+parentModule.attr("id");
SetCookie('ToHide', b, 100);
} else {
var d = a + "," + "#"+ parent.attr("id") + " #"+parentModule.attr("id");
KillCookie('ToHide');
SetCookie('ToHide',d, 100);
}
if(animate===true){
parentModule.fadeOut(function(){
checkIfVisible();
});
答案 0 :(得分:1)
如果要使用函数设置这些全局变量的值,请尝试以下操作:
var parent, parentModule = null;
function getParents(e){
parent = $(e.currentTarget).closest(".yourParentSelector");
parentModule = $(e.currentTarget).closest(".yourParentModuleSelector");
}
$("button").click(function(e){
getParents(e);
//do whatever you want with parent and parentModule variables
});
使用closest()
代替parent()
这是 FIDDLE