有些功能在.append之后不起作用

时间:2015-02-02 23:12:50

标签: javascript jquery ajax autocomplete append

我有一个使用autocompletemask的工作表单。我决定让我的表单更加用户友好,并开始使用tabsajax来加载内容。要查看所需的表单,请使用.append()创建新标签并在其中显示内容,而不是新的浏览器窗口。在追加之后,新创建的选项卡中应该自动完成的字段不是,而好像我复制完全相同的字段并粘贴在前面(不在.append选项卡中),它具有自动完成。掩码也一样。

我的问题是.append()究竟是如何运作的?我是否必须加载一些js和jquery函数后追加才能使它们生效?

1 个答案:

答案 0 :(得分:2)

我不确定,因为您没有显示您的代码,但是当您的元素是autocomplete()时,您可能会在onReady内的元素上调用tabs函数尚未出现,因为您必须在append()之后使用onReady动态添加autocomplete()的内容。

问题是,当您的tab元素确实存在时,您必须检查是否致电append

我举例说明了我tabautocomplete()上的元素,然后当元素出现时,我调用$(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 }); }); });,并且正常工作。看看:

&#13;
&#13;
<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;
&#13;
&#13;

希望这有帮助,