2016-05-21 3 views
0

Моя основная установка такова:функция JQuery работает без вызова

function overLink (e){ 
    alert(e); 
} 
$(document).ready(function() { 
    $("#id").mouseover(overLink(this)); 
}); 

Однако «overLink» вызывается при загрузке страницы, а не когда «#id» завис. Я читал, что это из-за() в объявлении моей функции, но я не могу удалить это, поскольку я хочу передать селектор функции. Есть идеи?

Спасибо!

+0

Возможный дубликат [JQuery передать несколько параметров в функции обратного вызова] (http://stackoverflow.com/questions/939032/jquery-pass-more-parameters-into-callback) – JJJ

ответ

3

Что вы делаете, когда вы «передаете» this функции, которую вы выполняете, это фактически вызвать функцию. Попробуйте это вместо

$(document).ready(function() { 
    $("#id").mouseover(function() { 
     overLink(this); 
    }); 
}); 
+0

Отлично! Спасибо! –

2

его, потому что вы вызываете функцию и возвращает результат его Т.И. слушателя .... курсора, находящегося вместо него вы должны передать ссылку на функцию ... не его результат

$("#id").mouseover(overLink); 
0

Это правильный способ вызова функции: -

function overLink (e){ 
    alert(e); 
} 
$(document).ready(function() { 
    $("#id").mouseover(function() { 
    overLink(this); 
    }); 
}); 
0

Когда имя функции следуют скобки (()), то немедленно вызывается (выполняется) JavaScript. Чтобы передать это как ссылку, опустите parens. Это будет работать: -

$(document).ready(function(){ 
    $("#id").mouseover(overLink); 
}); 

Но поскольку вы передаете аргумент для overLink, вы должны использовать анонимную функцию: -

$(document).ready(function(){ 
    $("#id").mouseover(function(){ 
    overLink(this); 
    }); 
}); 
0

Там нет необходимости передавать this в качестве аргумента как this в overLink будет элементом в любом случае.

function overLink(){ 
    alert(this); 
} 
$(document).ready(function() { 
    $("#id").mouseover(overLink); 
}); 
+0

У вас есть опечатка, 'overlik' должен быть' overlink' в строке 5 вашего кода. – Arjun

+0

@Sting спасибо .. – BenG