Куда поместить мой $ (документ) .ready (функция () {Когда у меня есть методы в .js

Я создал somefile.js, где somefile.js содержит некоторый метод jQuery. Так, например, это содержит эту функцию:

function showWindow(divID)
{
    var dialogDiv = $(divID);

    dialogDiv.dialog
    (
        {
            bgiframe: true,
            modal: true,
            autoOpen: false,
            show: 'blind'
        }
    )

    dialogDiv.dialog("open");
}

Таким образом на моей .aspx странице (или что бы то ни было, это мог быть .html), у меня есть кнопка:

<input type="button" onclick="showPopUp('testDiv')" value="Click Me!" />

Мой вопрос, мы собираемся использовать showPopUp на всем протяжении в нашем приложении. Если это называют от onClick события, то, куда я помещаю свой $ (документ) .ready (функция (), так как этот код не находится на странице, а на .js файле?

9
задан PositiveGuy 13 April 2010 в 15:47
поделиться

4 ответа

Вы можете поместить это в файл Javascript, если хотите. Если вы подключаете слушателей с помощью атрибута onclick, то вам не нужно использовать $(document).ready().

Однако обычно считается, что лучше не использовать атрибут onclick, а прикрепить слушателя в Javascript, например, так:

$(document).ready(function(){
  $("input.showPopup").click(function(){
    showWindow($(this).id);
  }

  function showWindow(id){...}
}

Вы можете поместить этот javascript в голову документа, как сказал ~ricebowl.

5
ответ дан 4 December 2019 в 21:09
поделиться

Поместите $ (document) .ready (...); в заголовок страницы (x) html (или, действительно, .php, .aspx, и т. д.) как обычно, при условии, что вы убедитесь, что он идет после связанного файла скрипта (для загрузки вашего somefile.js) и, конечно же, ссылки на ваш jQuery:

<head>
...
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="somefile.js"></script>

<script>
    $(document).ready(
     function() {
        $('input[type=button]').click().showPopUp('testDiv');
     }
    )
</script>

</head>


Отредактировано , чтобы отметить, что я чувствую, что упускаю что-то очевидное в вашем вопросе. Прокомментируйте, если я совершенно очевиден и упускаю вашу точку зрения ...
5
ответ дан 4 December 2019 в 21:09
поделиться

"Правильный" технический ответ будет зависеть от платформы (PHP, ASP.NET и т. Д.). Если вы хотите использовать эту функцию во всем приложении, вы может использовать тег сценария:

<script type="javascript" src="somefile.js" />

Этот тег может быть включен в «заголовок страницы», реализованный любым способом. Например, в ASP.NET я бы включил этот тег на главную страницу.

0
ответ дан 4 December 2019 в 21:09
поделиться

Вам нужно сделать следующее: Разделите функцию на две:

MakeDialog (divID) // таким образом вы подготовите div к созданию диалогового окна и ShowDialog (divID) // здесь вы покажете диалоговое окно

//document load
$(document).ready(function(){
     MakeDialog(divId);//prepa
});

function makeDialog(divID)
{
    var dialogDiv = $(divID);

    dialogDiv.dialog
    (
        {
            bgiframe: true,
            modal: true,
            autoOpen: false,
            show: 'blind'
        }
    )   
}

function showWindow(divId)
{
 dialogDiv.dialog("open");
}

HTH

0
ответ дан 4 December 2019 в 21:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: