微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查元素是否已初始化 jQuery UI 小部件滑块、日期选择器等

如何解决如何检查元素是否已初始化 jQuery UI 小部件滑块、日期选择器等

滑块小部件有一个 destroy 方法,但显然只有在滑块已初始化为特定元素时才能调用它。我试图找到一种方法来检测元素是否已使用滑块小部件初始化,如果是,则使用 destroy 方法

像这样:

if($('#myElm').slider() != NULL){
    $('#myElm').slider('destroy');
}

$('#myElm').slider({
   //new parameters
});

我想创建一个标志变量来检测它是否已被第一次初始化,但我确信必须有一种更优雅的方法检查元素的 jquery 小部件的状态。

这适用于任何其他 UI 小部件,如日历: https://api.jqueryui.com/datepicker/#method-destroy

if($('#myElm').datepicker() != NULL){
   $('#myElm').datepicker("destroy");
}

标签 (https://api.jqueryui.com/tabs/#method-destroy)

if($('#myElm').tabs() != NULL){
   $('#myElm').tabs( "destroy" );
}

我相信所有的 Widget 都有一个 destroy 方法

解决方法

您正在寻找 Instance 方法:

instance() 返回:对象

检索滑块的实例对象。如果元素没有关联的实例,则返回 undefined。

查看更多:https://api.jqueryui.com/slider/#method-instance

import sys
# Here are the arg that we are going to import from command line to be able to use them.
arg1 = str(sys.argv[1]) # incoming command line arguments
arg2 = str(sys.argv[2])
arg3 = str(sys.argv[3])
arg4 = str(sys.argv[4]) 
arg5 = str(sys.argv[5]) 
arg6 = str(sys.argv[6]) 
arg7 = str(sys.argv[7]) 
arg8 = str(sys.argv[8]) 

space = ' '
upper =['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
lower =['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

if(arg8 == "enc"):
    key = int(arg6) # the key to be use for encryption
    file1 = open(arg4,"a") 
    with open(arg2,'r') as r: 
        for line in r:
           for i in range(0,len(line)):
               if(line[i] != space):
                   for j in range(0,26): 
                       if(line[i] == lower[j]): #compare so i can encrytion my letters
                           if((j+int(key))>25): 
                               file1.write(lower[((j+int(key))%25)-1]) 
                           else:
                               file1.write(lower[j+int(key)]) 
               elif(line[i] == space):
                   file1.write(space)
           print()
    file1.close() # We need to closed the file

Datepicker 是小部件的害群之马,文档不显示 if($('#myElem').slider("instance") != undefined){ $('#myElem').slider("destroy"); } ,因此您可以查找 instance.data()

widget
,

@Twisty 提供了很好的解决方案,但我发现这是最优雅的

if (typeof $('#myElm').slider() !== "undefined") {
    $('#myElm').slider("destroy");
}

这适用于任何其他方法。

if (typeof $('#myElm').datepicker() !== "undefined") {
    $('#myElm').datepicker("destroy");
}

if (typeof $('#myElm').tabs() !== "undefined") {
    $('#myElm').tabs("destroy");
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。