Javascript 元素超出范围?

Javascript 元素超出范围?,javascript,jquery,Javascript,Jquery,我在元素超出范围或其他方面遇到了一些问题,但我没有收到任何错误,因此我不确定如何修复它。我已经缩小了下面的代码,以包含相关的内容 (function(){ var zdf = { theme : $('#zdf_theme') }; zdf.setupPopup = function(){ zdf.loadThemes(); } zdf.loadThemes = function() {

我在元素超出范围或其他方面遇到了一些问题,但我没有收到任何错误,因此我不确定如何修复它。我已经缩小了下面的代码,以包含相关的内容

(function(){

      var zdf = {
            theme : $('#zdf_theme')
      };


      zdf.setupPopup = function(){
         zdf.loadThemes();
      }

      zdf.loadThemes = function() {

        zdf.theme
                 .editableSelect({
                     effects: 'slide'
                 })
                 .on('select.editable-select', function(e, li) {
                     zdf.theme.attr("data-value", li.attr('value'));
                 });

     });
 }
}();
希望我已经提供了足够的代码来识别问题,但基本上在上线之前一切都正常

zdf.theme.attr(“数据值”,li.attr(“值”)

它似乎没有选择对象
zdf.theme

如果我用实际的选择器
$(“#zdf_主题”)替换它
,它工作得很好

可编辑的选择是此代码库


任何输入都将是伟大的

解决方案。。。可编辑选择正在替换我的输入,因此我需要在初始化可编辑选择后重新定义它。

如果在loadThemes函数中执行
console.log(zdf.theme)
操作,它会显示什么?您也可以使用
this.theme
而不是
zdf.theme
我想知道您是否可以在.on处理程序中使用
$(this)
而不是
zdf.theme
。尝试将.attr()更改为.prop()。我认为空属性可能有问题。请在此处阅读有关attr()与prop()的更多信息:。您还可以使用.data('value'),我的第二个猜测是:当调用.editableSelect()时,将重新创建id为#zdf_主题的元素并将其重新附加到DOM。这就是为什么需要重新选择它。也许吧,马金,看来你是对的。“可编辑选择”将用输入替换当前选择。。。并且console.log将返回select
[选择#zdf_主题,上下文:文档,选择器:“#zdf_主题”]
。有没有办法选择新创建的对象?!?还是重新定义它?