2013-03-28 3 views
0

У меня есть «виджет обратной связи», который я хочу скрыть для экранов с низким разрешением. моя проблема заключается в том, что это инъекционные следующий код сразу после <body> и не имеет значения, что я стараюсь я не могу скрыть reformal_tab элементjQuery: скрыть элемент

<a id="reformal_tab" href="http://domain.com" onclick="Reformal.widgetOpen();return false;" onmouseover="Reformal.widgetPreload();" onmouseout="Reformal.widgetAbortPreload();"><img alt="" src="domain.com/tab.png"></a> 

, что я пытался

<script> 
     $('reformal_tab').hide(); 
     $('#reformal_tab').hide(); 
</script> 

это реальный виджет, если что может помочь http://reformal.ru/

код:

<script type="text/javascript"> 
$(function() { 
    $('#reformal_tab').hide(); 
}); 

    var reformalOptions = { 
     project_id: 93459, 
     project_host: "domain.com", 
     tab_orientation: "left", 
     tab_indent: "50%", 
     tab_bg_color: "#F05A00", 
     tab_border_color: "#FFFFFF", 
     tab_border_width: 2 
    }; 

    (function() { 
     var script = document.createElement('script'); 
     script.type = 'text/javascript'; script.async = true; 
     script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'media.reformal.ru/widgets/v3/reformal.js'; 
     document.getElementsByTagName('head')[0].appendChild(script); 
    })(); 
</script> 

вы можете увидеть его здесь http://jsfiddle.net/PQsQq/2/

+0

html появляется перед javascript на вашей странице? – castis

+0

Что делать, если вы завернете его в '$ (function() {})'? –

+0

Возможно, вы введете элемент reformal_tab после того, как вы попытаетесь вызвать hide. $ ('# reformal_tab'). Hide(); должен это сделать. – Garrett

ответ

3

Второй звонок действительный. # ссылается на элемент на ID.

$('#reformal_tab').hide(); 

Вы также должны будете позвонить ему, когда документ будет готов.

$(function() { 
    $('#reformal_tab').hide(); 
}); 

Почему бы вам не только сделать его скрытым, когда Вы вводите его, а затем вы можете показать его на более высокий Рез экранов?

<a id="reformal_tab" style="display:none;" href="http://domain.com" ... 

Тогда где-то в скрипте ..

if(highResolution) { 
    $("#reformal_tab").show(); 
} 
+0

не скрывал:/ – teslasimus

+0

@teslasimus - Хорошо, внес некоторые изменения. – Aesthete

+0

Это должно обязательно работать http://jsfiddle.net/PQsQq/ удалить javascript или изменить '.hide' на' .show'. Убедитесь, что вы правильно указали javascript jquery? – Mal

0

Почему не просто удалить его?

$('#reformal_tab').remove(); 
+0

это тоже не сработало (( – teslasimus

0

Если элемент инъецирован javascript, он, вероятно, вставлен динамически после готовности DOM. Решение довольно просто, в вашем CSS:

#reformal_tab {display: none;} 
+0

вот так? Http://jsfiddle.net/PQsQq/4/ – teslasimus

+0

@teslasimus - Элемент находится внутри iFrame, к которому у вас нет доступа. Просто установите его в CSS , и кажется, что вам нужно! важно переопределить стили -> [** FIDDLE **] (http://jsfiddle.net/PQsQq/8/) – adeneo

+0

, но как я могу реализовать его с помощью jquery? Я хочу показать его в соответствии с разрешением. – teslasimus

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