0

在这里,变量 $thislistitem(下面以粗体显示)在我的函数中的相同位置。我把它分开来加粗。专注于正在创建的 jquery ui 按钮和单击事件。

        function activatequalifdetails($subgrid, qualId){
            $subgrid.find('.itemcontrols').hide();
            $subgrid.find("#detailedsubjects ol").on("click", "li", function(event){
                event.stopPropagation();
                        var $itemwithfoucsclass = $(".focus");
/* <![CDATA[ */         if(($itemwithfoucsclass[0] != $(this)[0]) && ($itemwithfoucsclass.length !== 0)){           /* ]]> */ 
                            $.post('<c:url value="/highschooldetailedqualifications/highschoolqualdetailedajaxupdate/"/>'+$itemwithfoucsclass.find('.itemcontrols button:nth-child(1)').attr("qualdetailid"), {grade: $itemwithfoucsclass.find('.grade').val(), yearattained: $itemwithfoucsclass.find('.yearAttained').val()});
                        }

var $thislistitem = $(this);

        $subgrid.find('#detailedsubjects ol li').not(this).removeClass('focus').find('.itemcontrols').hide();               
        $(this).addClass("focus").find('.itemcontrols').show();

            $(this).find('.itemcontrols button:nth-child(1)').button({
                icons: {
                    primary: "ui-icon-disk"
                },
                text: false
            }).unbind('click').click(function(){
                $.post('<c:url value="/highschooldetailedqualifications/highschoolqualdetailedajaxupdate/"/>'+$(this).attr("qualdetailid"), {grade: $thislistitem.find('.grade').val(), yearattained: $thislistitem.find('.yearAttained').val()}, function(data){
                    $thislistitem.removeClass('focus').find('.itemcontrols').hide();
                });
            });

            $(this).find('.itemcontrols button:nth-child(2)').button({
                icons: {
                    primary: "ui-icon-trash"
                },
                text: false
            }).unbind('click').click(function(){
                $.get('<c:url value="/highschooldetailedqualifications/highschoolqualdetailedajaxdelete/"/>'+qualId+'/'+$(this).attr("qualdetailid"), function(data){
                    $thislistitem.remove();
                });
            });

            $(this).find('.itemcontrols button:nth-child(3)').button({
                icons: {
                    primary: "ui-icon-closethick"
                },
                text: false
            }).unbind('click').click(function(){
                $thislistitem.removeClass('focus').find('.itemcontrols').hide()
            });             
    });//apply css class on click on any given item
}

保存和删除的点击事件完美运行。然而,取消按钮(第 3 个按钮)的单击事件正在提供一些行为。第三个按钮的点击逻辑与保存的相同,唯一的区别是图标,不需要帖子ID。

当我单击取消按钮时,没有任何反应。如果我做

.unbind('click').click(function(){
                    $thislistitem.remove();
                });

对于第三个按钮,它可以工作。

如果我提醒一些测试文本,它可以正常工作。如果使用removeClass()什么都不会发生。我尝试按原样复制和粘贴保存功能,更改图标等,并保持 ajax 调用完好无损。这工作正常,焦点课程被删除。如果我删除 ajax 调用并运行上面函数中看到的逻辑,那么什么都不会发生。Firebug 什么也没报告。

我在此页面上按顺序加载了多个版本的 jquery(1.4.3、1.4.2、1.5.1、1.6.2 和 1.7.2)。这可能是我的问题吗?对于我用于其他事情的不同插件,我需要不同的版本。有任何想法吗 ?我完全被难住了。

4

1 回答 1

0

好的,这就是我必须做的,这对我来说似乎是一个非常非常根本的错误。

            $(this).find('.itemcontrols button:nth-child(3)').button({
                icons: {
                    primary: "ui-icon-closethick"
                },
                text: false
            }).unbind('click').click(function(){
                $thislistitem.removeClass('focus').find('.itemcontrols').hide();
                return false;
            });

我需要做的就是添加return false; 按照我的逻辑。希望它可以帮助那里的人。

于 2012-08-21T20:05:30.863 回答