1

我的应用程序中有 2 列在加载网站期间加载的第一列。

如果选择框已在第二列上,它将加载"changed" 这里的事情是我的代码如下所示:

jQuery(".pagination").live("click",function(event){
    var pId = jQuery(this).attr("id");
    if( pId == "centerPagination")
        CenterColumnPagination();
    else if( pId == "searchPagination" )
        SearchColumnPagination();
});

在我网站的页面加载期间调用它们的 CenterPagination 函数。
SearchColumnPagination 它们在选择框被触发时被调用"changed"

之所以“单击”它们,是因为在这两列上,我有一个.pagination带有按钮的类。

我这里的问题是因为live代码,当我点击我的第一列时,按钮似乎被触发了两次,我注意到一个是因为当我检查 firebug 的控制台时,ajax 调用被调用了两次,并且因为那,我得到重复的结果。

同样在第二列,当我changed选择框(分页类会出来)时,然后点击分页类的按钮,它也被触发了两次。与第一列结果相同。

我在这里想要的不是让这些按钮被触发两次,就像正常点击一样。就像我点击它时,它应该只调用我的 ajax 一次。

请指导我。您的帮助将不胜感激和奖励!

谢谢!:-)

4

1 回答 1

1

我宁愿避免使用live. 而不是这个我使用delegate

$('#column-1').delegate('.pagination', 'click', function () {
    CenterColumnPagination();    
});

$('#column-2').delegate('.pagination', 'click', function () {
    SearchColumnPagination();    
});

或者,如果您不想识别列,您可以这样做:

jQuery('body').delegate(".pagination", "click", function(event) {
    var pId = jQuery(this).attr("id");
    if( pId == "centerPagination")
        CenterColumnPagination();
    else if( pId == "searchPagination" )
        SearchColumnPagination();
});
于 2012-07-18T06:57:30.597 回答