2013-07-14 10 views
0

Пожалуйста, помогите мне ниже. Кнопки, которые у меня есть на div, не работают на firefox, но когда я пишу код на консоли, он отлично работает.jquery не работает на firefox, но работает на консоли

Ниже одна из этих кнопок (все определенные в doc.ready):

$(document).ready(function(){ 
    $("button#close").click(function() { 
     disablediv(); 
    }); 
}); 

код disablediv:

var divstatus = 0; 

function disablediv() { 

    if(divStatus == 1) { 

     $("#add_new_input").val(''); 
     $("#toPopup").fadeOut("normal"); 
     $("#backgroundPopup").fadeOut("normal"); 
     $("#error").html(""); 

     divStatus = 0; 
    } 
} 

Спасибо заранее. Я пробовал много вариантов, таких как window.load, в том числе и т. Д., Но не работал. Поскольку он работает на консоли, это означает, что я не вижу синтаксических ошибок?

+0

показать код для disablediv() ; – raam86

+0

ОК и обратите внимание, что он работает на консоли – sisimh

+0

Также может оказаться полезным сбросить '$ (« кнопка: закрыть »)', чтобы убедиться, что он что-то выбирает, когда документ готов. –

ответ

1

Я не уверен, почему это работает, в первую очередь:

var divstatus = 0; 

function disablediv() { 

if(divStatus == 1) { 
... 
} 

divstatus не то же самое, как divStatus. Также, если он по умолчанию равен нулю, условие if никогда не будет true.

После фиксации этих 2 вещи она работает в FF (с новой JQuery, я не могу использовать этот старый в скрипку, и вы не должны использовать ее): jSFiddle

+0

ohhh yes u прав, потому что я добавил объявление вручную, когда увидел комментарий, спрашивающий о его первоначальном значении .. код немного большой, но уверен, что, поскольку программист должен заключить, что я устанавливаю divstatus = 1 на функцию divload ... затем спрятаю его и установим в 0 :) – sisimh

+0

может потребоваться день, чтобы исправить переменную name typo :) в любом случае он по-прежнему работает так, как вы можете видеть по ссылке, поэтому проблема не в этой части кода ... возможно, это позиция кода JS: в моем примере все находится в '$ (document) .ready (function() {}) ', однако disableddiv и переменная могут находиться в блоке'

0

Эта кнопка создана на лету, динамически?

ну, похоже. Если это так, попробуйте использовать

$("button#close").live('click',(function() { 
    disablediv(); 
}); 

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

Надеюсь, это поможет!

+5

'live' устарел в 2011 году, а с января этого года удаляется. В основном они переименовали его в 'on'. – FakeRainBrigand

+0

Простое переименование его в 'on' не будет иметь эффекта делегирования. Http: //api.jquery.com/on/# direct-and-delegated-events –

+0

не работает ,,, спасибо @cooshal – sisimh

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