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_主题”]
。有没有办法选择新创建的对象?!?还是重新定义它?