1

每次单击时,查看链接都会不断向表中添加行。我需要停止它。我在一个 JavaScript 数组中有 2 个对象,它们由 GetVıewData 传递给 prıntfeed 函数。当我单击每个视图链接时,它会添加 2 行,这很合适。再次单击后,它又增加了 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> 
4

2 回答 2

0

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

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

于 2012-10-15T21:56:04.477 回答
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++;
});
于 2012-10-16T00:33:30.760 回答