之間共享功能我有jQuery中定義爲這樣一些很好的對話:jQuery的:網頁代碼和代碼的document.ready
<script type="text/javascript">
$(document).ready(function() {
$("#someDialog").dialog({
autoOpen: false,
model: true,
buttons: {
"Do Something": function() {
var cleanInput = sanitizeInput(input);
// Do something with the clean input
},
Cancel: function() {
$(this).dialog("close");
}
},
close: function() {
}
});
function sanitizeInput(input) {
// Some magic here
return input;
}
});
</script>
某處在頁面上,無關的對話,我有一個調用的元素
<a href="#" onclick="doSomething('wendy');">Wendy's stats</a>
和相關的JavaScript:帶有參數的功能
<script type="text/javascript">
function doSomething(input) {
var cleanInput = sanitizeInput(input);
// Some code here
}
</script>
我想重用該函數的sanitizeInput()函數。但是,從document.ready函數之外,該對話框不起作用。將doSomething()函數放入document.ready函數中同樣會將其分解。那麼我應該在哪裏放置sanitizeInput()函數,以便兩者都可以使用它?
謝謝。
當的javascript在document.ready函數之外,那麼該函數中的代碼不能使用它。我已將這個簡化爲一個非常簡單的示例,並在Firefox 7中進行了測試,這是我的目標瀏覽器之一。 – dotancohen 2012-01-15 17:21:55
@dotancohen:這是不對的。回調函數內的'ready()'回調之外的任何函數/變量都可用。這就是詞法範圍的工作原理。但是,如果你做了'var sanitizeInput = function(...',那麼你需要確保它在你的'ready()'調用之前* – 2012-01-15 17:24:25
...如果它不工作,那麼你'需要在你的問題中包含非工作代碼 – 2012-01-15 17:25:11