2010-08-25 4 views
1

Я пытаюсь загрузить лайтбокс jQuery для загрузки при загрузке страницы. Я прошел на полпути. Лайтбокс открывается, когда страница загружается, а затем переходит к открытию ссылки в том же окне, что и полная страница. Как мне заставить его остановиться на этом этапе, прежде чем загружать ссылку в отдельном окне.Событие jQuery Trigger срабатывает несколько раз

JQuery:

$(document).ready(function(){ 
    $("a.greybox").bind("click", openbox); 
    $("a.greybox").trigger('click', openbox); 

    function openbox(){ 
    var t = this.title || $(this).text() || this.href; 
    GB_show(t,this.href,340,220); 
    } 
}) 

HTML:

<a href="http://google.com/" title="Google" class="greybox">Launch Google</a> 
+0

Второй параметр метода 'trigger()' jQuery предназначен для передачи дополнительных параметров в событие. Я понятия не имею, почему вы передаете функцию 'openbox' методу' trigger() '. – jason

+0

ваше право, не нужно. Но я все еще не могу найти решение, которое работает. – Chamilyan

+0

вы уверены, что у вас нет другого элемента 'a.greybox' в HTML? – fiatjaf

ответ

1

Если включить строку:

return false; 

в вашей функции. Это остановит исходное поведение ссылок при стрельбе.

+0

Я уверен, что это сработает, если я найду ошибку с эмулятором. – Chamilyan

1
function openbox(evt){ 
    evt.preventDefault(); // <<-- Add this 
    var t = this.title || $(this).text() || this.href; 
    GB_show(t,this.href,340,220);} 
} 
Смежные вопросы