Hoi allemaal,

ik weet bijna zeker dat ik niet de enige met dit probleem ben.

Ik laat een popup op het scherm zien dmv jQuery Show()

Nou werken de links binnen deze popup 'div' niet.
Het lijkt alsof ik met de 1e klik een focus doe op de div, en daarna werken de links pas.

Iemand enig idee?
Relevante broncode of een voorbeeld lijkt mij handig in dit geval.
Ik ben bang dat jullie hier weinig aan hebben, maar als het jullie zou helpen om een idee te krijgen van m'n probleem, indien andere css en js files gewenst zijn, voeg ik ze wel toe.

Ook heb ik al geprobeer overal touchend bij te zetten, (kwam ik tegen bij het googlen), maar dat helpt helaas ook niet. Uiteraard cache enz. geleegd

....on("click touchend",...


De links waar ik het over heb zijn iig:

...
$("#closePlotInfo").on("click", function (event){
        event.preventDefault();
        $("#plotInfo").hide();
    });
    $("#OpenInfra").on("click", function() {
        $('#infra').submit();
    });
...


map.css

#clearzoom {
    position: fixed;
        top: 60px;
        left: 10px;
    z-index: 999;
}
.mapTooltip {
    position : absolute;

    background-color : #fff;
    moz-opacity:0.70;
    opacity: 1;
    filter:alpha(opacity=100);
    border-radius:10px;
    padding : 10px;
    z-index: 1000;
    max-width: 200px;
    display:none;
    color:#343434;

    margin-top: -50px;
}

.maparea {
    overflow: hidden;
}
.map {
    opacity: 0.7;
    filter:alpha(opacity=70);

}
.zoomIn, .zoomOut {
    display: none;
}

#plotInfo {
     display: none;
     position: absolute;
        top: 5px;
        left: 5px;
    min-height: 150px;
    width: 250px;

    color:#fff;
    overflow:auto;
    margin:10px;
    
    padding: 5px;
    padding-top: 35px;
    
    z-index: 99999;
}

#plotInfo h2 {
    position: absolute;
        top: -15px;
        left: 0px;

    width: 100%;
    background-color: #000066;

    color: #ffffff;

    font-size: 16px;
    height: 30px;
    line-height: 30px;
    text-align: center;
}

#plotInfo span {
    color: white;
}

#OpenInfra {
    position: absolute;
        bottom: 10px;
        right: 10px;
    padding-left: 35px;
    cursor: pointer;

    height: 30px;
    

    background-repeat: no-repeat;
    background-size: 30px 30px;
    
    line-height: 30px;
}

#OpenInfra.red {
    background-image: url('../imgs/icon_infra_red.png');
}
#OpenInfra.orange {
    background-image: url('../imgs/icon_infra_orange.png');
}
#OpenInfra.green {
    background-image: url('../imgs/icon_infra_green.png');
}


map.js

$(function() {
    //The map
    var tPlots = {};
    var tLinks = {};
    var zoomLevel = 0;
    var xMap = 0;
    var yMap = 0;
    
    var clickedPlot = false;

    $.getJSON("/map/getPlots", function (json) {
        // Set the variables from the results array
        $.each(json, function(index, d){
            var plot = {};
            plot.title = d.title;
            plot.latitude = d.latitude;
            plot.longitude = d.longitude;
            plot.attrs = {
                    fill: d.fill
            };
            plot.tooltip= {
                content: d.tooltip
            };
            plot.myText = d.myText;
            plot.status = d.status;
            plot.locationID = d.location;
            tPlots[d.title] = plot;
        });
    });
    $.getJSON("/map/getLinks", function (json) {
        // Set the variables from the results array
        $.each(json, function(index, d){
            var link = {};
            link.between = [d.from,d.to];
            link.tooltip = {
                content: d.tooltip
            };
            link.attrs = {
                stroke: d.strokeColor
            };
            tLinks[d.name] = link;
        });
    });

    setTimeout(function(){
        $.fn.mapael.defaultOptions.map.defaultArea.attrsHover = {};
        $.fn.mapael.defaultOptions.map.defaultPlot.attrsHover = {};
        $.fn.mapael.defaultOptions.map.defaultLink.attrsHover = {};

        $(".maparea").mapael({
            map: {
                name: "world_countries",
                zoom: {
                    enabled: true,
                    touch: true,
                    maxLevel: 450,
                    "animDuration": 0,
                },defaultPlot: {
                    size: 5,
                    attrs: {
                        stroke: "#ccc",
                        "stroke-width" : 1
                    },
                    eventHandlers: {
                        click: function (e, id, mapElem, textElem, elemOptions) {
                            if (typeof elemOptions.myText != 'undefined') {
                                if(elemOptions.myText !== '') {
                                    $('#plotInfo h2').html(elemOptions.title);
                                    $('.plotInfo').html(elemOptions.myText);
                                    var statusImg = '/views/layout/imgs/icon_infra_' + elemOptions.status + '.png';
                                    $('#OpenInfra').removeClass('red');
                                    $('#OpenInfra').removeClass('orange');
                                    $('#OpenInfra').removeClass('green');
                                    $('#OpenInfra').addClass(elemOptions.status);
                                    $('#plotInfo').show();
                                    $('#infraLocation').val(elemOptions.locationID);
                                    
                                    clickedPlot = true;
                                } else {
                                    clickedPlot = false;
                                }
                            } else {
                                clickedPlot = false;
                            }
                        }
                    }
                },defaultLink: {
                    factor: 0.1,
                    attrs: {
                        "stroke-width": 2
                    }
                },defaultArea: {
                    attrs: {
                        fill: "#000066",
                        stroke: "#fff",
                        "stroke-width": 0.1,
                        opacity: 0.8
                    }
                },
                afterInit: function ($self, paper, areas, plots, options) {
                    $('.mapcontainer .map').unbind("resizeEnd");
                    //var screenW = $(window).width();
                    //var screenH = $(window).height() - $("#header").height() - $("#hostgroup_location").height() - $("#footer").height() + 10;
                    var screenW = $("#content").width();
                    var screenH = $("#content").height();

                    paper.setSize(screenW, screenH);
                    paper.canvas.setAttribute('preserveAspectRatio', 'none');

                    $(window).on('resize', function () {
                        //var screenW = $(window).width();
                        //var screenH = $(window).height() - $("#header").height() - $("#hostgroup_location").height() - $("#footer").height() + 10;

                    var screenW = $("#content").width();
                    var screenH = $("#content").height();
                    
                        paper.setSize(screenW, screenH);
                        paper.canvas.setAttribute('preserveAspectRatio', 'none');
                    }).trigger('resize');
                }
            },
            plots: tPlots,
            links: tLinks
        });
    }, 200);

    setTimeout(function(){
         $(".maparea").trigger('zoom', {
            level: 1
        });
        $(".maparea").trigger('zoom', {
            level: 0
        });
    }, 210);

    $('#clearzoom').on('click', function() {
        $(".maparea").trigger('zoom', {
            level: 0
        });
    });

    $(".maparea").on("zoom", function(e, zoomOptions) {
        if(zoomOptions.level >= 0) {
            $(".maparea").trigger("update", [{
                map: {
                    defaultPlot: {
                        size: 25 / (1 + (0.25 * zoomOptions.level)),
                        attrs: {
                            "stroke-width": 1 / (1 + (0.25 * (zoomOptions.level + 0.01)))
                        }
                    },defaultLink: {
                        attrs: {
                            "stroke-width": 2 / (1 + (0.25 * (zoomOptions.level + 0.01)))
                        }
                    }
                }
            }]);
        }
        console.log(zoomOptions.level);
    });

    /*mouse handles*/
    var mouseDragging = false;
    var mouseDown = false;
    $(".maparea .map").mousedown(function(e) {
        mouseDown = true;
    }).mousemove(function(e) {
        if(mouseDown) {
            mouseDragging = true;
            $("#plotInfo").hide();
        } else {
            mouseDragging = false;
        }
    }).mouseup(function(e) {
        var wasDragging = mouseDragging;
        mouseDragging = false;
    	mouseDown = false;
    	if (!wasDragging) {
            $("#plotInfo").hide();
            var offset = $(this).offset();
            var map = $.fn.mapael.maps["world_countries"];
            zoomLevel = $(".maparea").data("zoomLevel");
            var zoomRatioX = (zoomLevel * $.fn.mapael.defaultOptions.map.zoom.step) + 1;
            var zoomRatioY = (zoomLevel * $.fn.mapael.defaultOptions.map.zoom.step) + 1;

            var panX = $(".maparea").data("panX");
            var panY = $(".maparea").data("panY");

            var ratioX = map.width / $(this).width();
            var ratioY = map.height / $(this).height();

            var x = (e.pageX - offset.left);
            var y = (e.pageY - offset.top);
            xMap = x * ratioX;
            yMap = y * ratioY;
            xMap = xMap / zoomRatioX;
            yMap = yMap / zoomRatioY;
            xMap = xMap + panX;
            yMap = yMap + panY;
            if(clickedPlot === false)
                setTimeout(doZoom, 100);
        }
    });
    
    function doZoom() {
        if(clickedPlot === false) {
            $(".maparea").trigger('zoom', {
                fixedCenter: true,
                level : zoomLevel + 35, 
                x:xMap,
                y:yMap
            });
        }
        clickedPlot = false;
    }
    
    $("#closePlotInfo").on("click", function (event){
        event.preventDefault();
        $("#plotInfo").hide();
    });
    $("#OpenInfra").on("click", function() {
        $('#infra').submit();
    });
});


map - view, incl. header & footer

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no, minimal-ui">
    <meta name="HandheldFriendly" content="true">


    <link href="/views/layout/css/main.css"  rel="stylesheet" type="text/css">
    <link href="/views/layout/css/others.css"  rel="stylesheet" type="text/css">

    <link href="/views/layout/css/overview.css"  rel="stylesheet" type="text/css">
    <link href="/views/layout/css/map.css"  rel="stylesheet" type="text/css">
    <script src="/views/layout/libs/js/jquery-1.11.3.min.js" type="text/javascript"></script>
  
    <script src="/public/js/defaultFunctions.js" type="text/javascript"></script>
    <script src="/views/layout/js/main.js" type="text/javascript"></script>

    <script src="/views/layout/libs/js/raphael-min.js" type="text/javascript"></script>
    <script src="/views/layout/libs/js/jquery.mapael.js" type="text/javascript"></script>
    <script src="/views/layout/libs/js/world_countries.js" type="text/javascript"></script>
    <script src="/views/layout/libs/js/jquery.mousewheel.min.js" type="text/javascript"></script>
    <script src="/views/layout/js/map.js" type="text/javascript"></script>    <script src="/views/layout/js/inobounce.js"></script>
</head>
<body>
<div id="wrapper">
<div id="header">
    <a class="info" title="Show Info"></a>
        <a class="refresh" title="Refresh Page"></a>
        <a class="menu" title="Open Menu"></a>
</div>
<div id="content">
        <input type="button" value="Clear zoom" id="clearzoom">
	<div class="maparea">
		<div class="map"><span>Alternative content for the map</span></div>
	</div>
        <div id="plotInfo" class="rounded gradiant_red_ver simple_shadow"><h2 class="rounded_tLeft rounded_tRight"></h2>
            <a href="/" id="closePlotInfo" class="closeIcon"></a>
            <span class="plotInfo"></span>
            <span id="OpenInfra" title="Open Infrastructure">Infra.</span>
            <form method="POST" action="/infra" id="infra" style="display: none"><input id="infraLocation" type="hidden" name="locationid"></form>
        </div></div>
<div id="footer" class="gradiant_lightGrey_ver"><div class="container">
<a href="/index" class="button btn_overview">Overview</a><a href="/map" class="button btn_worldmap active">Worldmap</a><a href="/servicedesk" class="button btn_service_desk">Service Desk</a><a href="/reports" class="button btn_reports">Reports</a></div>
</div>
    <div id="menu" class="rounded_bLeft gradiant_lightGrey_fromRight">
        <li><a href="/users" class="myAccount">My account</a></li>
        <li><a href="/users/notifications" class="myNotifications">Notifications</a></li>
        <li><a href="/users/logout" class="logout">Logout</a></li>
    </div>
    <div id="aboutWrap"><div id="about" class="rounded gradiant_red_ver simple_shadow">
        <h2 class="rounded_tLeft rounded_tRight">About TOPI App<a href="/" id="closeAbout" class="closeIcon"></a></h2>
        <div class="logo"></div>
        <p><b>Transparency On Production App</b><br>...</p>
        <h6><b>Developed by:</b><br>Dennis<br>E: ...</h6>
        <h5>&copy;2016</h5>
    </div></div>
</body>
</html>


[size=xsmall]Toevoeging op 05/07/2016 11:18:07:[/size]

Ik ben erachter dat het met iOS te maken heeft.
In ieder geval, voor zover ik weet :-/

Je moet best 'snel' je vinger van het scherm afhalen, voordat deze getriggered wordt.
Anders is het alleen maar zoiets als ... 'highlight' of 'hover' whatever

Nog geen oplossing gevonden

Reageren