我有一个使用autocomplete和mask的工作表单。我决定让我的表单更加用户友好,并开始使用tabs和ajax来加载内容。要查看所需的表单,请使用.append()创建新标签并在其中显示内容,而不是新的浏览器窗口。在追加之后,新创建的选项卡中应该自动完成的字段不是,而好像我复制完全相同的字段并粘贴在前面(不在.append选项卡中),它具有自动完成。掩码也一样。
我的问题是.append()究竟是如何运作的?我是否必须加载一些js和jquery函数后追加才能使它们生效?
答案 0 :(得分:2)
我不确定,因为您没有显示您的代码,但是当您的元素是autocomplete()
时,您可能会在onReady
内的元素上调用tabs
函数尚未出现,因为您必须在append()
之后使用onReady
动态添加autocomplete()
的内容。
问题是,当您的tab
元素确实存在时,您必须检查是否致电append
。
我举例说明了我tab
和autocomplete()
上的元素,然后当元素出现时,我调用$(function() {
$( "#tabs" ).tabs();
$('#appendButton').click(function(){
// create auto
var $auto = $('<div class="ui-widget"><label for="tags">Tags: <\/label><input id="tags"><\/div>');
// append auto
$('#tabs-1').append($auto);
console.log('autocomplete');
// once is appened start autocomplete
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$('#tags').autocomplete({
source: availableTags
});
});
});
,并且正常工作。看看:
<html lang="en">
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
</head>
<body>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
</ul>
<div id="tabs-1">
<p> <input id="appendButton" type="button" onclick"appendAuto();" value="appendAuto" /></p>
</div>
</div>
</body>
</html>
&#13;
{{1}}&#13;
希望这有帮助,