全局变量$(this)

Global Variable with $(this)

本文关键字:this 全局变量      更新时间:2023-09-26

我想让编码对我来说更容易,所以我分配了一个全局。

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();
});

如果您想使用函数设置这些全局变量的值,请尝试如下:

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