2015-04-23 53 views
0

我正在创建一个实验,它使用onclick方法查看大量单元格。我正在测试是否让他们看起来更像超链接,如提高点击率。在jquery中多次调用mouseover和mouseout会发生什么

function cursorSelect(element){ 
    element.css("cursor","pointer"); 
} 
function cursorNormal(element){ 
    element.css("cursor","default"); 
} 
function colourSelect(element){ 
    element.css("color","blue"); 
} 
function colourNormal(element){ 
    element.css("color","black"); 
} 

function variation1(){ 
    //variation 1 code 
    $("td").mouseover(cursorSelect($(this))); 
    $("td").mouseout(cursorNormal($(this))); 
} 

function variation2(){ 
    //variation 2 code 
    $("td").mouseover(colourSelect($(this))); 
    $("td").mouseout(colourNormal($(this))); 
} 

var pageVariations = [ 
    function() {}, //Original; Mostlikely this will not need changing 
    function() { //Variation 1 goes in here 
    variation1(); 
    }, 
    function(){ //Variation 2 goes in here 
    variation2(); 
    }, 
    function(){ //Variation 3 goes in here 
    variation1(); 
    variation2(); 
    } 
    ] 
$(document).ready(pageVariations[chosenVariation]);//jQuery launching selected variation 

jquery mouseover和mouseout设置的行为是什么?多次调用这个方法会覆盖之前调用的设置,还是追加它们?

回答

1

会多次调用这个方法覆盖前面调用的设置,还是追加它们?

所有你正在处理的jQuery代码是应用CSS,它将在JavaScript中为element.style对象添加属性。只要你不应用相同的属性,它们将被合并而不是被覆盖。

但是,使用CSS来做这件事会更好。你可以轻松地做类似如下:

.variation1 td { 
    color: black 
} 
.variation1 td:hover { 
    color: blue; 
} 

variation2 td { 
    cursor: default; 
} 
.variation2 td:hover { 
    cursor: pointer; 
} 

然后,根据你想表现为准变化,你只是类variation1variation2添加到顶级元素一样<body>

+0

绝对 - 我打算稍后改变样式表。这是一个驱动A | B实验的脚本,用于确定我是否应该进行我正在考虑的更改。 – Grimley

相关问题