好了,我上一篇文章是关于变量和jquery的问题:如何捕获值并使用它们(第3部分)。您可以找到其他关于寻找变量和jquery的问题:如何捕获值和使用它们(第1部分)和变量和jquery:如何捕获值和使用它们(第2部分)。
我不得不这样做:1. 从ul-li列表中捕获值;2. 将其插入到全局变量中(未成功);3.将此变量用于另一个单击函数。
现在我展示了我的解决方案代码(在社区的帮助下),听起来,但我想优化它。
我有一个带有事件鼠标悬停的城市ul-li列表:
<ul id="country_list" onmouseover="cl();">
<li><a id="pulsante1" href="#">Roma</a>
<li><a id="pulsante2" href="#">Milano</a>
<li><a id="pulsante3" href="#">Venezia</a
这是我的CSS:
.selected
{
background-color: #FFFFFF;
}
开始函数,注释:
function cl(){
$('.map').maphilight(); // call a plug-in to illuminate the maps
$('#country_list li a').mouseover(function(e){ //on mouseover over the list
// change background color at the element of the list over the mouse is
$( e.target ).addClass('selected');
//put id value in a variable. I'm going to capture pulsante1 for example more #
var $regionMap = '#' + e.target.id;
// put the value
var $variab = '#'+ e.target.innerHTML;
//control
//alert(regionMap);
// alert (variab);
// this part is the plugin for highlight some particular areas (the cities' areas). form here to...
$($regionMap).mouseover(function(a) {
$($variab).mouseover();
});
$($regionMap).mouseout(function(a) {
$($variab).mouseout();
});
});
//... here
//remove background color
$('#country_list li a').mouseout(function(e){
$( e.target ).removeClass('selected');
});
// mousedown function.
$('#country_list li a').mousedown( function(e) {
// e.target is the element you clicked, give me HTML value (Roma for example)
var $variabile = e.target.innerHTML;
var $alfa= '#' + $variabile; // Roma is now #Roma
// alert("You entered: " + $alfa); //control
//control dialog($alfa); // this call a dialog function giving its *$alfa* value
});
}
ok。这是我的问题:
我不喜欢在这里使用onmouseover
<ul id="country_list" onmouseover="cl();">
,但它似乎不能以其他方式工作('#country_list')。鼠标悬停不工作想法吗?我想划分函数cl()的部分相对在鼠标下。为此,我需要两个值为:
的全局变量。id li(例如pulsante1)对我来说,这应该是regionMap。b. name li(例如Roma)。对我来说应该是变量
但我不知道如何获得一个全局变量!我已经在<script>
和regionMap=""; variab="";
之间的<head></head>
中声明了它们
我在前面试过白色$,还有很多其他的方法,但是我所有的尝试都没有实现…
所以你要帮我?
谢谢
第一个问题
比起使用onmouseover属性,最好将mouseover事件绑定到jQuery对象。可以使用以下代码:$('ul#country_list').bind('mouseover', function () { // do what you want to do on mouse over });
也可以先定义一个函数,然后将其用作bind函数的第二个参数。例如:
var cl = function () { // do something };
$('ul#country_list').bind('mouseover', cl);
然后你的第二个问题,我不确定你的意思是"部分相对于鼠标下"。但是对于全局变量,你可以用不同的方法来实现。
我总是喜欢做的(注意这是一个例子,不是一个标准):
在window变量中创建一个空对象,例如:
window.globals = {};
function test () {
window.globals.test = 'this is available everywhere!';
}
test();
console.log(window.globals);