在jQuery中加载函数而不加载txt文件

时间:2012-12-19 16:51:44

标签: jquery html

在我的html标题中,我有

<head>
<script src="jquary.js"></script>
<script>
   $(document).ready(function(){
     ladda();
    });
</script>
</head>

我加载jQuery

在我身上

<form namne="load"
<fieldset>
    <legend> load</legend>
    <table>
        <tr>
            <td><div id="innehåll1">vill du ändra denna text</div></td>
        </tr>
    </table>
<button id="load_text">ändra</button>
</fieldset>

在我写的Javascript中

(function($){
   ladda = function() {

$("#load_text").click(function(){
    $("#innehåll1").load("innehåll.txt");
        alert('ändrat');
  });
  };
 })(jQuery);

我在同一文件夹中有一个名为innehåll.txt的外部txt文件,其中包含:

  <h2>fkdösfkds</h2>
  <p>jfksfksdalö</p> 

我的问题是,为什么txt文件的内容没有加载到div标签中?

2 个答案:

答案 0 :(得分:1)

您没有将ladda()函数声明为全局函数 - 它只在您在其中声明它的匿名函数的范围内 - 因此它超出了您的其他$(document).ready()事件的范围处理程序。

如果您查看浏览器的开发者工具,则可能会出现JavaScript错误,告诉您上述情况。你可以这样做:

(function($) {
    $(document).ready(function() {
        $("#load_text").click(function() {
            $("#innehåll1").load("innehåll.txt");
            alert('ändrat');
        });
    });
})(jQuery);

答案 1 :(得分:0)

有一些可能导致意外行为的事情:

  1. 您可以尝试避免文件名中的特殊字符
  2. 您应该在ready函数
  3. 中可以访问的范围内声明ladda
  4. 您必须避免j form标记和其他所有内容中的拼写错误
  5. 希望这能帮到你!

    用于在正确范围内定义函数的代码:

    function ladda() {   
      $("#load_text").click(function(){
        $("#innehåll1").load("innehåll.txt");
        alert('ändrat');   
      }); 
    }
    

    你也可以直接在准备好的身上做到:

    $(document).ready(function() {
      $("#load_text").click(function() {
        $("#innehåll1").load("innehåll.txt");
        alert('ändrat');
      });
    });