2012-01-12 26 views
0

我有如下代碼:聲明javascript函數沒有正確地結合

$(document).ready(function() { 
    $(function detinator() { 
        $("select#arhpcnDetinator").jCombo("services/detinatori.php", { 
          initial_text: "Detinator", 
          selected_value: $("input#arhpcndetinatorID").val() 
        }); 
});  
}); 

和一切工作的完美。

當我嘗試在其他事件上調用相同的函數時,它停止工作。

$(document).ready(function() { 
    $(function detinator() { 
        $("select#arhpcnDetinator").jCombo("services/det.php", { 
          initial_text: "Detinator", 
          selected_value: $("input#arhpcndetinatorID").val() 
        }); 
    $("#imag").click(detinator); 
    }); 
}); 

HTML是:

<img src="Sync.png" id="imag" onclick="ziceva"> 

請幫幫我!先謝謝你。

回答

2

我就從你那裏雙包裝中取出,像這樣:

$(document).ready(function() { 
    var detinator = function() { 
     $("select#arhpcnDetinator").jCombo("services/det.php", { 
     initial_text: "Detinator", 
     selected_value: $("input#arhpcndetinatorID").val() 
     }); 
    }; 

    $("#imag").click(detinator); 
}); 
+0

「雙重包裝」很奇怪。我會將函數聲明從ready函數中移出。 – 2012-01-12 02:33:59

+0

這僅僅是爲了舉例說明。 – 2012-01-12 02:34:35

+0

這不等同於他的代碼,除非您將一個調用添加到'detinator'。這是一個非常奇怪的構造,它將導致該函數被調用。雖然我懷疑這是故意的,但他的方式還會在每次調用時添加一個額外的「click」處理程序。 – 2012-01-12 02:34:42

0

你可以嘗試這樣的事情?

$(document).ready(function() { 

    $("#imag").click(function() { 
       $("select#arhpcnDetinator").jCombo("services/det.php", { 
         initial_text: "Detinator", 
         selected_value: $("input#arhpcndetinatorID").val() 
       }); 

    }); 


}); 
+0

這不是我想要的,因爲當DOM加載時,jCombo提供我的選擇框。在添加新記錄(在另一個窗口)後,我必須刷新/重新加載選擇列表並調用jCombo(jSON)。 – 2012-01-12 02:41:14

0

嘗試將detinator函數轉換爲javascript。

$(document).ready(function() { 
    function detinator() { 
      $("select#arhpcnDetinator").jCombo("services/det.php", { 
       initial_text: "Detinator", 
       selected_value: $("input#arhpcndetinatorID").val() 
      }); 
    } 
    $("#imag").click(detinator()); 
}); 
+0

你不應該叫'detinator'。你正在傳遞''click''detinator'的返回值,這是什麼都沒有。另外,原始代碼在'ready'上執行該功能。 – 2012-01-12 02:36:18

+0

但我必須調用'detinator'函數:)。當DOM加載時,jCombo提供我的選擇列表。在添加新記錄(在另一個窗口)後,我必須刷新/重新加載選擇列表,並通過點擊'#imag'來調用jCombo(jSON)。 – 2012-01-12 02:43:56

0

我想開括號{你有$("select#arhpcnDetinator").jCombo("services/det.php",後的問題。刪除它,然後再試。

+0

不,它是jCombo函數的一部分 – 2012-01-12 02:39:02

+0

這不是括號,它是一個大括號或括號。我沒有看到它的問題。 – 2012-01-12 02:39:23