Переменные и JQuery: как захватить значение и использовать их (часть 2) - PullRequest
1 голос
/ 13 сентября 2011

это моя проблема:

Я захватил переменную из списка ul-li

У меня есть список с большим количеством имен: Roma, Milano, Venezia... Я фиксирую значение идентификатора (pulsante1 для рома, pulsante2 для Милана, pulsante3 для Venezia, ...) с помощью события mouseover (ищите этот вопрос переменные и jquery: как захватитьзначение (часть 1) , если вы хотите узнать больше).

Итак, теперь у меня есть глобальная переменная с именем $ regionMap, и ее содержимое меняется каждый раз, когда список ul-li имеетсобытие наведения мыши.Итак, теперь я мог бы использовать значение $ regionMap вместо различных значений идентификатора ( pulsante1, pulsante2, pulsante3 ... ) в других скриптах jquery.

Например,У меня есть этот цикл:

$('#pulsante1').mousedown(function() // when click over pulsante1 (id value for "Roma")
        {           
var $variab=document.getElementById('pulsante1').innerHTML; // take the name (here Roma)
var $alfa="#"+ $variab;  // Roma is now #Roma
alert("You entered: " + $alfa); //control
dialog($alfa); // calling the function dialog rolling on #Roma value.
});

// here is similar at the first but instead #pulsante1(Roma) you have #pulsante2 (Milano)
$('#pulsante2').mousedown(function() 
        {       
        var $variab=document.getElementById('pulsante2').innerHTML;
        var $alfa="#"+ $variab;
        alert("You entered: " + $alfa); //control
        dialog($alfa); // calling the function dialog
        }); 
                    });//close click

Теперь я хотел бы использовать $ regionMap вместо pulsante1, pulsante2 ... но для меня это невозможно!Я пытаюсь так $($regionMap).mousedown(function() и другим способом ($($regionMap)., ($regionMap)., $('$regionMap'). ....),

но у меня всегда нет результатов!Как я могу сделать?Вы знаете, как передать переменную?

Я думаю, что, вероятно, есть лучший способ получить аналогичный результат (например, с помощью цикла * для in *), но я не знаю, как это сделать ...

Извините за длинный пост и извините за базовый английский, но я не разработчик, и я пошел на большой TILT!

спасибо

Ответы [ 3 ]

0 голосов
/ 13 сентября 2011

вы можете попробовать что-то вроде ...

$( $regionMap ).each( function (i,el)
{
    $( el ).mousedown(function() // when click over pulsante1 (id value for "Roma")
        {           
            var $variab=el.innerHTML; // take the name
            var $alfa="#"+ $variab;  // Roma is now #Roma
            alert("You entered: " + $alfa); //control
            dialog($alfa); // calling the function dialog rolling on #Roma value.
        });

});

Это перебирает все идентификаторы в regionMap и применяет функцию обратного вызова к каждому из них.

Каждая функция jQuery применяет функцию обратного вызова к каждому элементу в коллекции. коллекция в этом случае - ваш список идентификаторов. [ '# Pulsante1', '# pulsante2']

http://api.jquery.com/jQuery.each/

0 голосов
/ 13 сентября 2011

Используйте этот код для привязки всех событий:

$($regionMap).children('li').mousedown(function()
{           
    alert("You entered: " + this.id);
    dialog(this.id);
});

Это свяжет событие с каждым ли внутри карты, и они будут обрабатывать событие отдельно.

0 голосов
/ 13 сентября 2011

Посмотрев на другой вопрос, попробуйте это.

$('#country_list').mousedown( function( e ) {

  // e.target is the element you clicked

  var $variab = e.target.innerHTML;

  var $alfa= '#' + $variab;  // Roma is now #Roma

  alert("You entered: " + $alfa); //control

  dialog($alfa);

});

Ваш элемент #country_list будет прослушивать любые события mousedown.Когда это происходит, вы можете найти элемент, сгенерировавший событие, с помощью e.target.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...