Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jQuery可点击区域内创建死区_Jquery_Jquery Ui_Click_Double Click - Fatal编程技术网

在jQuery可点击区域内创建死区

在jQuery可点击区域内创建死区,jquery,jquery-ui,click,double-click,Jquery,Jquery Ui,Click,Double Click,包括,和其中一个ui主题(我非常喜欢) (请容忍我,底部有一个问题,如果你愿意,你可以跳到这个问题,只是想展示一下我是如何到达我现在的位置的) (很抱歉,如果代码中有我遗漏的任何错误或位,它确实可以工作,但为了便于阅读,正在切割代码) 我从项目提供的标准开始: 然后我想好了,现在我想dblclick页面上的项目,并显示一个对话框进行编辑 所以我补充说: <div id="itemDialog"></div> $("#itemDialog").dialog({ aut

包括,和其中一个ui主题(我非常喜欢)

(请容忍我,底部有一个问题,如果你愿意,你可以跳到这个问题,只是想展示一下我是如何到达我现在的位置的)

(很抱歉,如果代码中有我遗漏的任何错误或位,它确实可以工作,但为了便于阅读,正在切割代码)

我从项目提供的标准开始:

然后我想好了,现在我想dblclick页面上的项目,并显示一个对话框进行编辑

所以我补充说:

<div id="itemDialog"></div> 


$("#itemDialog").dialog({ autoOpen: false, modal:true });
$("#pageItems li").live("dblclick", function () {
    openDialog(this);
});

function openDialog(elem) {
    $("#itemDialog").dialog('open');
}
我修改了copythis功能以允许包含按钮:

function copythis(elem) {
    var selected = $(elem).closest("li").clone();
    selected.find(".buttons").remove();
    $("#pageItems").append(selected).html();
}
这就是我现在所在的地方,也是我目前正在研究的问题

如果dblclick pageElement,将复制该元素(如预期的那样)

如果单击“添加”按钮,该按钮也将复制新元素(如预期的那样)

由于pageElement dblclick事件附加到pageElement li标记上,并且add button click事件位于嵌套在其中的跨度标记上,因此如果我快速单击add按钮,有时会触发dblclick事件,因此会向pageItem列表添加多个元素

我想做的是为围绕add按钮项的dblclick事件创建一个死区

我愿意接受任何想法

干杯


Luke

我知道这一点用处不大,但我建议不要听dblclick——它在不同的客户机中工作方式不同——而jquery并没有掩盖所有这些,b)你不想让用户双击,这很复杂。

好吧,所以我找到了一个答案,可能不是最好的,但它确实有效

它涉及定义一个全局变量:

var clicked = 0;
然后,在ui的实时事件上,添加将值设置为1,然后设置超时以延迟值重置回0:

    $(".ui-add").live("click", function () {
        clicked = 1;
        copythis(this);
        setTimeout(function () { clicked = 0;}, 100);
    });
那么在我的pageElement dblclick函数中:

    $("#pageElements li").dblclick(function () {
        if (clicked == 0) {
            copythis(this);
        }
    });

虽然不理想,但它很有效。

如果您能将它放进去让我们感受一下,那就太好了
$("#pageElements li").live("mouseenter", function () { $(this).append(addButton); }).live("mouseleave", function () { $(this).find(".buttons").remove(); });

$(".ui-add").live("click", function () {
    copythis(this);
});
function copythis(elem) {
    var selected = $(elem).closest("li").clone();
    selected.find(".buttons").remove();
    $("#pageItems").append(selected).html();
}
var clicked = 0;
    $(".ui-add").live("click", function () {
        clicked = 1;
        copythis(this);
        setTimeout(function () { clicked = 0;}, 100);
    });
    $("#pageElements li").dblclick(function () {
        if (clicked == 0) {
            copythis(this);
        }
    });