0

好的,我仍在研究这个 jquery 照片管理器,您可以在此处查看原始的完整工作原理http://jqueryui.com/demos/droppable/#photo-manager

这是我遇到的问题,我为每张图片都包含了一个单选按钮。我一直把头撞在墙上,想知道为什么我不能点击并改变单选按钮。现在我意识到是什么导致了这个,这是我添加这部分的代码的这一部分

else if ($target.is("input.ismainchk")) {
            //recycleImage($item);
        }

单击单选按钮时,我真的不需要它触发另一个功能我只需要单击单选按钮

这是一些 HTML,因此您可以了解我正在使用的内容。

    <ul id="gallery" class="gallery ui-helper-reset ui-helper-clearfix ui-droppable">
<li id="d386f25f-66b8-429d-aaa9-c0552a4839fa" class="ui-widget-content ui-corner-tr ui-draggable" style="width: 96px; display: list-item;">
<h5 class="ui-widget-header">
<input id="textd386f25f-66b8-429d-aaa9-c0552a4839fa.jpg" class="ghost-text" type="text" size="13" defaultval="Picture Headline" maxlength="150" style="color: grey;">
</h5>
<img id="../userimages/d386f25f-66b8-429d-aaa9-c0552a4839fa.jpg" width="96" height="72" src="../userimages/d386f25f-66b8-429d-aaa9-c0552a4839fa.jpg">
<a class="ui-icon ui-icon-zoomin" href="images/high_tatras4.jpg" title="View larger image">View larger</a>
<input id="d386f25f-66b8-429d-aaa9-c0552a4839fa.jpgmain" class="ismainchk" type="radio" title="Main Img" name="maingroup">
<a class="ui-icon ui-icon-trash" title="Delete this image" href="link/to/trash/script/when/we/have/js/off">Delete image</a>
</li>

这是给出问题的 JQuery 部分。

        // resolve the icons behavior with event delegation
    $("ul.gallery > li").click(function (event) {
        var $item = $(this),
            $target = $(event.target);

        if ($target.is("a.ui-icon-trash")) {
            deleteImage($item);
        } else if ($target.is("a.ui-icon-zoomin")) {
            viewLargerImage($target);
        } else if ($target.is("a.ui-icon-refresh")) {
            recycleImage($item);
        } else if ($target.is("input.ismainchk")) {
            //recycleImage($item);
        }

        return false;
    });
4

1 回答 1

0

好吧,在研究了几天之后,经过大量的反复试验,我找到了答案。返回错误;最后导致未检查单选按钮。将 return false 移动到特别需要它的单个项目允许检查单选按钮

        $("ul.gallery > li").click(function (event) {
        var $item = $(this),
            $target = $(event.target);

        if ($target.is("a.ui-icon-trash")) {
            deleteImage($item);
            return false;
        } else if ($target.is("a.ui-icon-zoomin")) {
            viewLargerImage($target);
            return false;
        } else if ($target.is("a.ui-icon-refresh")) {
            recycleImage($item);
            return false;
        }           

    });
于 2012-04-27T15:23:03.377 回答