события jQuery не работают в iframe?
у меня возникли некоторые проблемы с focus(function(){})
и blur(function(){})
внутри скрипта, вложенного в динамически загружаемый iframe..
Ниже приведен тег скрипта в iframe, который динамически загружается. Любое событие, которое я бросаю в разметку скрипта, не работает, простые вещи, такие как $('input').click(function(){alert('fired')});
даже не запустится. Я не знаю, что происходит.
да, jQuery загружается в iframe в голове.
<script type="text/javascript">
// <![CDATA[
$(document).ready(function() {
$('.form .field-content').find('input, select, textarea').focus(function() {
$(this).closest('.field').addClass('focused');
});
$('.form .field-content').find('input, select, textarea').blur(function() {
$(this).closest('.field').removeClass('focused');
});
$('.form .field-content').find('input, select').keypress(function(e) {
if (e.which == 13) {
e.preventDefault();
$(this).closest('.form').find('.button').first().click();
}
});
$('.form .button').focus(function() {
$(this).addClass('focused');
});
$('.form .button').blur(function() {
$(this).removeClass('focused');
});
// focus on first field
$('.form .field-content').find('input, select, textarea').first().focus();
});
// ]]>
</script>
5 ответов
возможно, проблема в том, что содержимое iframe не было загружено, попробуйте
$("#Your-Iframe-Id").load(function (){
// write your code here
});
для содержимого, которое динамически загружается, Вы должны взглянуть на jQuery live () функции
загружает ли iframe URL-адрес, который является другим доменом, чем родительский контейнер? Если это так, вы не сможете использовать javascript для управления его содержимым.
мне кажется :
$('.form .field-content').find('input, select, textarea').focus(function() {
$(this).closest('.field').addClass('focused');
});
должно быть:
$('.form .field-content').find('input, select, textarea').each(function(index) {
$(this).focus(function(){
alert('element ' + index + ' focused');
});
alert('bind focus event in element ' + index);
});
ура.
Это может иметь какое-то отношение к безопасности в вашем браузере. Поиграйте с некоторыми настройками для зоны и посмотрите, поможет ли это.
какой браузер вы используете?