Клуб API Карт

Событие вызывается два раза

dmitrii.malakhov
14 октября 2011, 14:06
 
YMaps.Events.observe(map, map.Events.ContextMenu, function (map, e) {
        map.openBalloon(e.getCoordPoint(), new addPoint(e.getCoordPoint())
}
var addPoint = function (geoPoint) {
            var table = $("<table/>");
       
            $(table).append($("<tr/>").append($("<td/>").text("Название:")).append($("<input/>").attr("id", "name"))
            $(table).append($("<tr/>").append($("<td/>").text("Описание:")).append($("<input/>").attr("id", "descriptpoint"))
            $(table).append($("<tr/>").append($("<td/>").text("Тип метки:")).append($("#group").clone())
            $(table).append($("<tr/>").append($("<td/>").text("")).append($("<button/>").attr("id", "submit").text("Добавить"))
           
            var $element = YMaps.jQuery(table);
            this.onAddToParent = function (parent) {
                $element.find('#submit').click(function () {
                    var namepoint = $(table).find("#name").val(
                    var descriptpoint = $(table).find("#descriptpoint").val(
                    var groupVal = $(table).find("#group").attr("value");                   
                    var groupText = $(table).find("#group").val(
                    alert("OK");
                    $.ajax({
                        url: "../yandex_addpoint.php",
                        type: "post",
                        data: {
                            namepoint: namepoint,
                            descriptpoint: descriptpoint,
                            x: geoPoint.getX(),
                            y: geoPoint.getY(),
                            group: groupVal                   
                        },     
                        success: function (response) {
                            if(response == 1) {   
                                map.closeBalloon(
                                showPoint(namepoint, descriptpoint,geoPoint.getX(),geoPoint.getY(),groupVal);
                            } else {
                                map.closeBalloon(
                                alert(response);
                            }
                            $(this).unbind(                           
                        }
                    }     
                }
                $element.appendTo(parent);
            };
            this.onRemoveFromParent = function () {
                $element.remove(
            };
         
           this.update = function () {};
        }   
 
Собственно проблема такая: при добавлении метки событие вызывается нормально. Но вот если например нажать на другие метки на карте и потом вызвать событие на добавление метки то оно уже проходит два раза. Не могу понять в чем проблема? 
Заранее спасибо!
1 комментарий
Подписаться на комментарии к посту

после

$element.find('#submit').click(function () {

добавь

$element.find('#submit').unbind('click');

должно помочь