Js函数在phonegap build

时间:2016-05-19 22:46:32

标签: javascript jquery cordova

我在使用phonegap构建时出现问题,一个函数运行两次(在我的手机上使用phonegap构建),当我在firefox上执行脚本时,会有所不同。

这是我的代码的一部分:

$(".blackcase").click(function(e)
{
    if (elemIsEmpty($(this)) && isSelected("black"))
    {
        return;
    }
    if (isSelected("white"))
    {
        //swap white to black
        alert("swap b to w");
        if ($(this).html() == valueoffirst.html())
        {
            $(valueoffirst.html(""));
            alert("swap   b to w1");
        }
        else
        {
            swapValuesFromTo($("#" + selectedCase.id), $(this));
            alert("swap b to w 2");
        }
        clearSelectedCase();
        removeSelectionWithRed();
        return;
    }
    if (isSelected("black"))
    {
        alert("swap b to b");
        $("#" + selectedCase.id).removeClass('red');
        if ($(this).html() == valueoffirst.html() && $(this).attr('id') != valueoffirst.attr('id'))
        {
            $(valueoffirst.html(""));
            alert("swap   b to b1");
        }
        else
        {
            swapValuesFromTo($("#" + selectedCase.id), $(this));
            alert("swap b to b 2");
        }
        clearSelectedCase();
        removeSelectionWithRed();
        return;
    }
    //alert("black is selected");
    selectWithRed($(this));
    updateSelectedCase("black", $(this).attr("id"), $(this).html());
    valueoffirst = $(this);
});

function removeSelectionWithRed()
{
    $('div').removeClass('red');
}

function selectWithRed(element)
{
    removeSelectionWithRed();
    element.addClass('red');
}

function updateSelectedCase(color, id)
{
    selectedCase.color = color;
    selectedCase.id = id;
}

function moveValueFromTo(elemFrom, elemTo)
{
    elemTo.html(elemFrom.html());
    setValueToElem("", elemFrom);
}

function setValueToElem(value, elem)
{
    elem.html(value);
}

function swapValuesFromTo(elemFrom, elemTo)
{
    var fromValue = elemFrom.html();
    var toValue = elemTo.html();
    setValueToElem(fromValue, elemTo);
    setValueToElem(toValue, elemFrom);
}

function isSelected(color)
{
    return selectedCase.color == color;
}

function clearSelectedCase()
{
    selectedCase.color = "";
    selectedCase.id = "";
}

function elemIsEmpty(elem)
{
    return elem.html().length == 0;
}

当我在firefox上运行我的代码时,如果我点击黑色案例然后在另一个黑色案例上,它会交换值并且我有两个警报:

将b换成b

将b交换为b2

一切都还可以,但是在我的手机上进行phongap构建测试,如果我点击blackcase然后另一个blackcase,值不会交换,我有4个警报:

将b换成b

将b交换为b2

将b换成b

将b交换为b2

所以我认为值交换但重新交换,因此值与起始值相同(就像没有变化一样)。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:2)

在移动平台上运行时,也可能会触发触摸事件。尝试注册触摸事件以测试它是否被触发。