2012-03-08 19 views
0

アップデート:IEではうまく動作しているようですが、Opera、FF、Chromeでは動作していないようです...jQuery Ajax Clickでエラーが返されますが、Document.Readyで正常に実行されますか?

javascriptを使用して、バインドを使用してsqliteにデータを簡単に書き込む方法を書いています。私のクリック機能は、私の単純なAjaxリクエストでは機能していません。私はここで混乱しています...いつものように、これはうまく動作します:

$("#showDB").click(function(){alert("CLICKED!")}); 

これはうまく動作します:

$(document).ready(function() { 
      $.ajax({ 
       type: 'GET', 
       url: 'dv.xml', 
       dataType: 'xml', 
       success: parseXml, 
       error: function() { 
        alert('XML file not found.'); 

       } 
      }); 
      function parseXml(xml) { 
        //alert('XML file found.'); 
        $(xml).find('Employee').each(function(){ 
         var name = $(this).find('name').text(); 
         var email = $(this).find('email').val(); 
         var jobtitle = $(this).find('jobtitle').val(); 
         var address = $(this).find('address').val(); 
         var workphone = $(this).find('workphone').val(); 
         var homephone = $(this).find('homephone').val(); 
         var cellphone = $(this).find('cellphone').val(); 
         var fax = $(this).find('fax').val(); 
         var contractor = $(this).find('contractor').val(); 

         alert(name); 

        }); 
      } 

     }); 

しかし、私は私のAJAXリクエストを実行するためにクリックしたときに、それは私を返します。エラーアラート「XMLファイルが見つかりません」

$("#showDB").click(function(){ 
     $.ajax({ 
      type: 'GET', 
      url: 'dv.xml', 
      dataType: 'xml', 
      success: parseXml, 
      error: function() { 
       alert('XML file not found.'); 

      } 
     }); 
     function parseXml(xml) { 
       //alert('XML file found.'); 
       $(xml).find('Employee').each(function(){ 
        var name = $(this).find('name').text(); 
        var email = $(this).find('email').val(); 
        var jobtitle = $(this).find('jobtitle').val(); 
        var address = $(this).find('address').val(); 
        var workphone = $(this).find('workphone').val(); 
        var homephone = $(this).find('homephone').val(); 
        var cellphone = $(this).find('cellphone').val(); 
        var fax = $(this).find('fax').val(); 
        var contractor = $(this).find('contractor').val(); 

        alert(name); 

       }); 
     } 

    }); 

なぜクリックできないのですか?私は何が欠けていますか?

クリックコードの

答えて

1

悪いブラケット、これを使用する:

$("#showDB").click(function(){ 
    $.ajax({ 
     type: 'GET', 
     url: 'dv.xml', 
     dataType: 'xml', 
     success: parseXml, 
     error: function() { 
      alert('XML file not found.'); 

     } 
    }); 
    }); // needed to close it 

編集:「DOC」コールのdoesntが失敗した理由は、負荷annon機能にカプセル化され、AJAX機能である - あなたが持っているonclickのコードしかし、いくつかの閉じ括弧が欠けていた

+0

ので、クリックの外に関数を置く? – jasonflaherty

+0

「エラー」ハンドラの割り当てと同様に、ORをannon関数として作成します。どちらの方法も「良い」ですが、作成する関数が1つ以上の要素で使用される場合は、標準化して「そのインターフェイスを必要とする要素は何でも」利用できるようにする方が良いでしょう。 –

+1

私はこれを行いました。しかし、役に立たなかった...私は#showDBボタンがフォームにあったので、フォームを提出しようとしていた問題を発見した。 – jasonflaherty

関連する問題