如何在拖放元素时执行函数

发布于 2024-11-04 04:07:56 字数 1556 浏览 0 评论 0原文

我有一个基本的 jquery/javascript 问题。

下面的代码将创建可以拖放的对象。如果你点击一个对象,它会显示“下一个”对象的ID。

我希望在该对象第一次“抓取”(拾取)时返回这个值(下一个对象的ID)无需刻意点击),然后返回其放置位置的“下一个”对象的 ID。

理想情况下,如果抓取的位置的 ID 等于其放置的位置,则应该不返回任何ID。

Jquery & Javascript

$(function() {
    $( "#sortable" ).sortable();
    $( "#sortable" ).disableSelection();
});

$("li").live("click",function(e) {
    document.getElementById("result").innerHTML=($(this).next("li").attr('id'))
});

CSS:

#sortable { list-style-type: none; margin: 0; padding: 0; }
#sortable li { margin: 3px 3px 3px 0; padding: 1px; float: left; width: 100px; height: 90px; font-size: 4em; text-align: center; }
</style>

HTML:

<div class="container">

<ul id="sortable">
    <li id="li1" class="ui-state-default">1</li>
    <li id="li2" class="ui-state-default">2</li>
    <li id="li3" class="ui-state-default">3</li>
    <li id="li4" class="ui-state-default">4</li>
    <li id="li5" class="ui-state-default">5</li>
    <li id="li6" class="ui-state-default">6</li>
</ul>

</div>

<br><div id="result">Result Placed Here</div>

我什至不知道从哪里开始,因为我不知道如何在不单击(不抓取)的情况下运行该函数。

非常感谢任何帮助,

Taylor

A JSfiddle 可以在这里找到: http://jsfiddle.net/TSM_mac/uuHsg/4/

I have a sorta-basic jquery/javascript question.

The code below will create objects which can be dragged and dropped. If you click on an object, it will display the ID of the "next" object.

I wish to return this value (of the next object's ID) when the object is first "grabbed" (picked up without deliberately clicking) and then return the ID of the "next" object where it is placed.

Ideally, if the ID of the location it is grabbed is equal to the location where it is placed, it should not return any ID.

The Jquery & Javascript

$(function() {
    $( "#sortable" ).sortable();
    $( "#sortable" ).disableSelection();
});

$("li").live("click",function(e) {
    document.getElementById("result").innerHTML=($(this).next("li").attr('id'))
});

The CSS:

#sortable { list-style-type: none; margin: 0; padding: 0; }
#sortable li { margin: 3px 3px 3px 0; padding: 1px; float: left; width: 100px; height: 90px; font-size: 4em; text-align: center; }
</style>

The HTML:

<div class="container">

<ul id="sortable">
    <li id="li1" class="ui-state-default">1</li>
    <li id="li2" class="ui-state-default">2</li>
    <li id="li3" class="ui-state-default">3</li>
    <li id="li4" class="ui-state-default">4</li>
    <li id="li5" class="ui-state-default">5</li>
    <li id="li6" class="ui-state-default">6</li>
</ul>

</div>

<br><div id="result">Result Placed Here</div>

I don't even know where to start because I do not know how to run the function without it being clicked (without grabbing).

Any help is greatly appreciated,

Taylor

A JSfiddle can be found here:
http://jsfiddle.net/TSM_mac/uuHsg/4/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初与友歌 2024-11-11 04:07:56

使用可排序事件 startstop

$(function() {
    function startCallback(event, ui) {
        // stuff
    }

    function stopCallback(event, ui) {
        // other stuff
    }

    $("#sortable").sortable({
        start: startCallback,
        stop: stopCallback
    }).disableSelection();
});

Use the sortable events start and stop.

$(function() {
    function startCallback(event, ui) {
        // stuff
    }

    function stopCallback(event, ui) {
        // other stuff
    }

    $("#sortable").sortable({
        start: startCallback,
        stop: stopCallback
    }).disableSelection();
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文