2013-07-03 121 views
1

我有一個jQuery對話框,帶有添加項目按鈕和一個文本框,將文本框中的任何內容添加到對話框中的表格中。jquery點擊事件被多次調用

它第一次添加項目罰款。但是當我關閉它然後打開它。它開始多次調用按鈕單擊事件。有什麼可能是錯的?這是在對話框上執行的點擊事件。

<script language="javascript" type="text/javascript"> 

$(document).ready(function() { 


    $("#btnSubmit").live('click', function() { 
     $("#namingarray").attr("value", "-1"); 
     $('.clstr1').each(function() { 
      var notextbox = $("#namingarray").attr("value"); 
      var vc = parseInt(notextbox) + 1; 
      $("#namingarray").attr("value", vc); 
     }); 

     var metatext = $.trim($("#metatxt").val()); 
     var namingarray = $("#namingarray").attr("value"); 
     var vc1 = parseInt(namingarray) + 1; 
     $("#namingarray").attr("value", vc1); 

     $("#Dropdownadditems").append("<tr class=\"clstr1\" id=\"row-" + vc1 + "\" ><td>" + metatext + "</td><td><a class='linkbuttons' href='#' id=" + vc1 + ">Delete</a></td></tr>"); 
     $("#metaItems").append("<input type=\"hidden\" value=\"" + metatext + "\" name=\"Dropdownadd\" id=\"MetaValue-" + vc1 + "\" />"); 
     $("#metatxt").val(""); 
    }); 


}); 

+1

你有這樣的例子嗎? jsFiddle或其他東西將有助於識別問題。 – CharliePrynn

+0

你是一個非常好的主意。它現在解決了這個問題。下次我會嘗試把一些代碼放在jsFiddle – maztt

回答

2

通常情況,請嘗試使用preventDefault()

$("#btnSubmit").live('click', function (event) { 
    ... 
    ... 
event.preventDefault(); 
}); 
+1

更好的使用.on('click',function(e){..} – zyrex

+1

哇解決它謝謝 – maztt

+0

@mazharkaunainbaig我很高興我能夠幫助。使用.on(),因爲live會在jQuery的持久版本中折舊。請查看[this](http://api.jquery.com/live/)瞭解更多信息。 – Praveen