- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
可能与:Uncaught TypeError: Object #<HTMLLIElement> has no method 'find'有关
<小时/>这是对我的问题的讨论的聊天记录:https://chat.stackoverflow.com/rooms/17/conversation/tabs-issue
它继续到这里:https://chat.stackoverflow.com/transcript/message/4373231#4373231
我正在执行以下操作:
$(document).on({
"click": function () {
$(this).addClass("active");
$(".TaskRow").not(this).removeClass("active").removeClass("hoverActive");
$(".TaskDetails").hide();
$(document).off("keyup", "body", keyDownFn);
keyDownFn = makeRelationships(this);
$(document).on("keyup", "body", keyDownFn);
var thisTaskDetails = ".task" + $(this).data("id") + "Details";
if (detailsArray[thisTaskDetails] !== undefined) {
detailsArray[thisTaskDetails].show();
var td = $(".taskDetails", detailsArray[thisTaskDetails]);
if ($(".hide", detailsArray[thisTaskDetails]).length) {
toggleMCE(td, $(".taskCopy", detailsArray[thisTaskDetails]))
$("#" + td.attr("id") + "_parent", detailsArray[thisTaskDetails]).show();
}
} else {
var thisID = $(this).data("id"),
displayTask = function () {
$.get(WEBROOT + INDEX + "/Task/displayTask/" + thisID, function (data) {
var domElement = $(data),
saveThis = function () {
$("form", domElement).trigger("submit");
return true;
},
taskDetails = $(".taskDetailsArea", domElement);
console.log(domElement);
detailsArray[thisTaskDetails] = domElement.appendTo(bottomLeftPane);
detailsArray[thisTaskDetails].tabs(); //ERROR HERE
console.log(domElement, detailsArray);
//*
taskDetails.tinymce({
// Location of TinyMCE script
script_url: INDEX + '/js/tiny_mce/tiny_mce.js',
// General options
theme: "advanced",
plugins: "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",
// Theme options
theme_advanced_buttons1: "save,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2: "pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,ltr,rtl,|,fullscreen",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: "bottom",
theme_advanced_resizing: true,
//Saving:
save_enablewhendirty: true,
save_onsavecallback: saveThis,
// width: $("#leftPane").width(), height: $("#leftPane").height(),
//Setup:
setup: function (ed) {
console.log(ed, "setup");
ed.onChange.add(function (ed) { //blur
console.log('Editor was changed: ' + ed.id);
saveThis();
// toggleMCE(taskDetails, $(".taskCopy", domElement));
});
ed.onClick.add(function (ed, evt) { //focus
console.log('Editor was clicked: ' + ed.id, evt);
});
}
});
$("form", domElement).on("submit", function (e) {
e.preventDefault();
var posts = $(this).serialize();
$.post(WEBROOT + INDEX + "/Task/changeSomething", posts);
return false;
});
$("form", domElement).on("focus", function (e) {
e.preventDefault();
console.log("focused on body", e);
return false;
});
//*/
});
};
if (thisID !== undefined) {
displayTask();
} else {
}
}
}
}, ".TaskRow");
整个错误仅发生在该函数的第二次加载时。它在 detailsArray[thisTaskDetails].tabs();
这是堆栈跟踪:
Uncaught TypeError: Object #<HTMLLIElement> has no method 'find' jquery.js:2
e.fn.e.init jquery.js:2
e jquery.js:2
(anonymous function) jquery-ui-1.8.9.custom.min.js:446
e.fn.e.map jquery.js:2
e.extend.map jquery.js:2
e.fn.e.map jquery.js:2
d.widget._tabify jquery-ui-1.8.9.custom.min.js:445
d.widget._create jquery-ui-1.8.9.custom.min.js:443
b.Widget._createWidget jquery-ui-1.8.9.custom.min.js:30
b.widget.b.(anonymous function).(anonymous function) jquery-ui-1.8.9.custom.min.js:28
b.widget.bridge.b.fn.(anonymous function) jquery-ui-1.8.9.custom.min.js:29
e.extend.each jquery.js:2
e.fn.e.each jquery.js:2
b.widget.bridge.b.fn.(anonymous function) jquery-ui-1.8.9.custom.min.js:29
$.on.click.displayTask :2525/#tabs-25:502
f.Callbacks.n jquery.js:2
f.Callbacks.o.fireWith jquery.js:2
w jquery.js:4
f.support.ajax.f.ajaxTransport.send.d jquery.js:4
我使用的是 Chrome 20+
##旁白:
$.get
中返回的内容来自php:
<div class="TaskDetails Task task<?php echo $task['Task']['taskId']; ?>Details">
<ul>
<li><a href="#tabs-1">Details</a></li>
<li><a href="#tabs-2">Users</a></li>
<li><a href="#tabs-3">Array</a></li>
</ul>
<div id="tabs-1" style="padding: 0px; height: 100%; width: 100%;">
<form method="post" data-row="<?php echo $task['Task']['taskId']; ?>">
<?php
$details = $task['Task']['taskDetails'];
$details = nl2br($details);
$details = str_replace(array("\\r\\n", "\\r"), "\n", $details);
$details = implode("",explode("\n", $details));
$details = stripslashes($details);
?>
<textarea id="task<?php echo $task['Task']['taskId']; ?>Details" name="changedTo" class="Task task<?php echo $task['Task']['taskId']; ?> taskDetails taskDetailsArea"><?php echo $details; ?></textarea>
<div id="task<?php echo $task['Task']['taskId']; ?>Details" class="taskCopy"><?php echo $details; ?></div>
<input name="changed" value="taskDetails" type="hidden"/>
<input name="row" value="<?php echo $task['Task']['taskId']; ?>" type="hidden"/>
</form>
</div>
<div id="tabs-2" class="Task task<?php echo $task['Task']['taskId']; ?> taskUsers">
<?php echo $task['Task']['taskUsers']; ?>
</div>
<div id="tabs-3" class="Task task<?php echo $task['Task']['taskId']; ?>">
<pre><?php print_r($task);?></pre>
</div>
</div>
##更多信息:detailsArray
开头是一个空对象 {}
。var thisTaskDetails = ".task"+ $(this).data("id") + "详细信息";
$(this)
是被点击的任意 DOM 元素。
最佳答案
这可能会帮助比我更好的程序员将解决方案归零:
过去一周我在我自己编写的 JS 页面构建器界面上注意到了这个错误。 (没有 TinyMCE,但有大量 jQuery 插件。)我得出了与此票证作者相同的结论,即 jQuery 在普通 DOM 元素上错误地调用了 find()。
有趣的是,当您关闭 Chrome 调试器时,问题就消失了。 (我相信我们都能体会到这句话的讽刺意味。)
我知道这并不能让您更接近解决方案,但至少您可以放心,99.9% 的用户(我想除非他们来自 StackOverflow)可能永远不会看到这个问题。
关于jquery - 未捕获的类型错误 : Object #<HTMLLIElement> has no method 'find' in Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11318224/
我遵循了一本名为“Sitepoint Full Stack Javascript with MEAN”的书中的教程,我刚刚完成了第 6 章,应该已经创建了一个带有“数据库”的“服务器”。数据库只不过是
在 Jquery 中,我创建两个数组,一个嵌入另一个数组,就像这样...... arrayOne = [{name:'a',value:1}, {name:'b',value:2}] var arra
这个问题在这里已经有了答案: What is the explanation for these bizarre JavaScript behaviours mentioned in the 'Wa
我被放在别人的代码上,有一个类用作其他组件的基础。当我尝试 ng serve --aot(或 build --prod)时,我得到以下信息。 @Component({ ...,
我正在测试一些代码,并使用数据创建了一个 json 文件。 问题是我在警报中收到“[object Object],[object Object]”。没有数据。 我做错了什么? 这是代码:
我想打印 [object Object],[object Object] 以明智地 "[[{ 'x': '1', 'y': '0' }, { 'x': '2', 'y': '1' }]]"; 在 ja
我有一个功能 View ,我正在尝试以特殊格式的方式输出。但我无法让列表功能正常工作。 我得到的唯一返回是[object Object][object Object] [object Object]
在使用优秀的 Sim.js 和 Three.js 库处理 WebGL 项目时,我偶然发现了下一个问题: 一路走来,它使用了 THREE.Ray 的下一个构造函数: var ray = new THRE
我正在使用 Material UI 进行多重选择。这是我的代码。 {listStates.map(col => (
我的代码使用ajax: $("#keyword").keyup(function() { var keyword = $("#keyword").val(); if (keyword.
我遇到了下一个错误,无法理解如何解决它。 Can't resolve all parameters for AuthenticationService: ([object Object], ?, [o
我正在尝试创建一个显示动态复选框的表单,至少应选中其中一个才能继续。我还需要获取一组选中的复选框。 这是组件的代码: import { Component, OnInit } from '@angul
我正在开发 NodeJs 应用程序,它是博客应用程序。我使用了快速验证器,我尝试在 UI 端使用快速闪存消息将帖子保存在数据库中之前使用闪存消息验证数据,我成功地将数据保存在数据库中,但在提交表单后消
我知道有些人问了同样的问题并得到了解答。我已经查看了所有这些,但仍然无法解决我的问题。我有一个 jquery snipet,它将值发送到处理程序,处理程序处理来自 JS 的值并将数据作为 JSON 数
我继承了一个非常草率的项目,我的任务是解释为什么它不好。我注意到他们在整个代码中都进行了这样的比较 (IQueryable).FirstOrDefault(x => x.Facility == fac
我只是在删除数组中的对象时偶然发现了这一点。 代码如下: friends = []; friends.push( { a: 'Nexus', b: 'Muffi
这两个代码片段有什么区别: object = nil; [object release] 对比 [object release]; object = nil; 哪个是最佳实践? 最佳答案 object
我应该为其他人将从中继承的第一个父对象传递哪个参数,哪个参数更有效 Object.create(Object.prototype) Object.create(Object) Object.creat
我在不同的对象上安排不同的选择器 [self performSelector:@selector(doSmth) withObject:objectA afterDelay:1]; [self per
NSLog(@"%p", &object); 和 NSLog(@"%p", object); 有什么区别? 两者似乎都打印出一个内存地址,但我不确定哪个是对象的实际内存地址。 最佳答案 这就是我喜欢的
我是一名优秀的程序员,十分优秀!