2011-12-26 3 views
1

Вот кусок моего HTML код:Невозможно получить пожар события события jQuery?

<li> 
    <a id="section1" href="#" onclick="return false">&raquo; Section 1</a> 
    <ul> 
     <li><a href="link1.html" target="showframe" id="tab1" name="tab1">Tab 1</a></li> 
     <li><a href="link2.html" target="showframe" id="tab2" name="tab2">Tab 2</a></li> 
    </ul> 
</li> 

Это на самом деле JQuery Аккордеон. Теперь работает линия $('#section1').click(); или $('#'+section).click();, как на IE, так и на Chrome. Для внутренних Anchor тегов, я попытался с помощью:

$('a#'+tab_name_from_querystring).click(); 

$('a[name="'+ tab_name_from_querystring+'"]').click(); 

$('a#tab1').click(); 

Все они не работают в любом браузере. Если я использую это:

document.getElementById(tab_name_from_querystring).click(). 

Он работает только в IE, а не в Chrome.

Любая помощь пожалуйста?

UPDATE: Вот полный код JavaScript:

<script type="text/javascript"> 
    var query = window.location.search.substring(1); 
    var params = query.split('&'); 
    var temp = params[0].split('='); 
    var section = temp[1].toLowerCase(); 
    temp = params[1].split('='); 
    var tab = temp[1].toLowerCase(); 
    $(document).ready(function(){ 
     $('#'+section).click(); 
     setTimeout(function(){ 
      $("a[name='tab1']").click(); // Did not work 
      $('a[name="'+tab+'"]').click(); // Did not work 
      document.getElementById(tab).click(); // Works only in IE 
     }, 500); 

    }); 
</script> 
+0

Вы уверены, что 'tab_name_from_querystring' является 'tab1' или 'tab2'? – abuduba

+0

Да. Как я уже сказал, он работает в IE, используя document.getElementById() –

+0

Какие ошибки вы получаете? – Bergi

ответ

0

Может быть, вам нужно что:

window.location.href = $("a#tab1").attr("href"); 
+0

Я вложил код в '$ (document) .ready();' –

+0

Показать здесь - [jsfiddle.net] (http://www.jsfiddle.net) – abuduba

+0

Пробовал. Нет помощи. Я не понимаю, почему document.getElementById() не работает в Chrome. В обычный день это никогда не вызывает проблемы с использованием jQuery и JavaScript. –

0

Попробуйте использовать

$(selector).trigger("click"); 
+0

Да, я пробовал это. Не работал. –

0

Поскольку у вас есть идентификаторы по вашим ссылкам, вы пробовали:

$ (» # '+ tab_name_from_querystring) .click();

или

$ ('# tab1') нажмите().

+0

Да, я пробовал это. Как ни странно, он не стреляет. Где, как в «обычный» день, что-нибудь выше и это будет работать. –

+0

Действительно ли вы нажимаете событие click, чтобы что-то сделать? Например: $ ('# tab1'). Click (function() { alert ('click() вызван.'); }); –

+0

№ Как вы видите в теге Anchor, событие click должно открыть страницу, указанную в атрибуте HREF, должно быть открыто в IFRAME с id ** showframe **. –

1

Снимите a перед #

Что-то вроде:

$('#'+ tab).click(); 

Он работает на jsFiddle, для его просмотра у here

+0

Я с удивлением вижу простые утверждения типа $ ('# tab1'). Click() не работает. –

+1

Можете ли вы разместить более полный код здесь или jsfiddle? –

+1

'$ (" # "+ tab) .click();' равно top 'document.getElementById (tab) .click();' –

0

Хорошо. В соответствии с подсказкой по abuduba, следующий код работает:

$('iframe[name="showframe"]').attr('src', $("a[name="+tab+"]").attr('href')); 

То есть, скопируйте значение атрибута HREF тега Якорь в атрибуте SRC желаемого IFRAME.

Благодаря каждый

Смежные вопросы