Jquery表行添加停止

时间:2012-10-15 21:52:15

标签: javascript jquery

查看链接会在每次额外点击时向表中添加行。我需要停止ıt。 我有一个JavaScript对象的2个对象,通过GetVıewData传递给prıntfeedfunctıon。 当我clıck每个vıewlınk它添加2行,whıchısfıne。 clıckıngagaınıt之后再添加2个,依此类推。我怎么能阻止这些功能呢?

$(document).ready(function() {
   $(".anch").click(function(e) {           
    GetViewData(trID);
});

function GetViewData(pid) {
var data = [ {"FeedID":"10", "TranslateText": "test"}, {"FeedID":"11", "TranslateText": "test"}];           

$.each(data, function (i, item) {
         printFeed(div, item,TableID );
 });

function printFeed(div,item,tableName) {        
        var iTableName = "#" + tableName;
        var newRow = $("<tr><td>test</td></tr>");
        $(iTableName).append(newRow);

    }  

<a class="anch">view</a>  
<div id="ajaxDiv-1">
    <table id="Table2">
        <tr><td>test</td></tr>
    </table>
</div>  
<a class="anch">view</a> 
<div id="ajaxDiv-1">
    <table id="Table3">
        <tr><td>test</td></tr>
    </table>
</div> 

2 个答案:

答案 0 :(得分:0)

所以你希望用户只能点击一次按钮吗?

如果是这样,你可以使用jQuery .one函数。 http://api.jquery.com/one/

答案 1 :(得分:0)

包含使用先前发布的one()的各种方式。这限制了处理程序只能运行一次。

您可以使用条件语句来查看是否需要在处理程序中运行代码。

var ctr=0;

$(selector).click(function(){
   if( ctr < 3){
      /* run code*/
   }
   ctr++;
});

或者您可以使用unbind()off()

删除处理程序
if( myFavoriteColor === 'Green'){
   $(selector).unbind('click')
}

$(selector).click(function(){
   if( ctr < 3){
      /* run code*/
   }else{
       $(this).unbind('click')
   }
   ctr++;
});