我一直在一段web應用程序的一段時間工作。 JavaScript文件已經變得相當大,它有很大一部分負責初始化和處理jQuery UI元素和事件。爲了使事情更具可讀性和可維護性,我將UI初始化程序和事件處理程序拆分爲單獨的文件。該文件在邏輯文件之前加載,如螢火蟲的net標籤所確認。奇怪的jQuery UI執行延遲
由於我已經分離了UI元素,我注意到按鈕和複選框已從單擊單擊觸發器更改爲雙擊,之後它們的事件首次觸發。之後,單擊執行事件。爲了仔細檢查,我在事件處理程序中設置了一條日誌語句,直到第二次點擊纔打印出來。
這是HTML頁面
<script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui-1.8.21.custom.min.js"></script>
<script type="text/javascript" src="../js/ajaxupload.3.5.js"></script>
<script type="text/javascript" src="../js/modernizer.js"></script>
<script type="text/javascript" src="../js/ui_initialization.js"></script>
<script type="text/javascript" src="../js/setCoordinates.js"></script>
<script type='text/javascript>
$(document).ready(function(){
onload();
});
<script type="text/javascript" src="../js/nav.js"></script>
onload
的腳本申報setCoordinates定義,這反過來又打完在ui_initilization setupElements
。
例如,我在HTML定義一個複選框爲
<div id='checkboxes'>
<input type="checkbox" id="panel" class="checkbox"/>
<label for="panel" id='paneLabel' class="checkbox"></label>
</div>
並處理ui_initilization.js
click事件作爲
$("#checkboxes").buttonset();
$("#paneLabel").text("Hide Panels");
$("#panel").click(function(){
console.log("pane click");
handlePanelButtonClick();
});
首先點擊什麼也不做,並記錄聲明不顯示。第二次點擊觸發事件。
有沒有辦法解決這個問題?
你能否提供一些代碼,它可以是任何東西......糟糕的設計,不好的js練習......沒什麼可討論的 – kidwon 2012-08-15 21:56:22
對不起,以爲這會比其他任何事情都更爲出名。看到我的編輯 – Jason 2012-08-15 22:27:42