2013-10-28 208 views
3
function showHideSoldTo() { 
    if ($("#radio-text-sold-to").prop("checked")) { 
     $("#select-sold-to").hide(); 
     $("#text-sold-to").show(); 
    } else if ($("#radio-select-sold-to").prop("checked")) { 
     $("#text-sold-to").hide(); 
     $("#select-sold-to").show(); 
    } 
} 

$("#radio-text-sold-to").click(showHideSoldTo()); 
$("#radio-select-sold-to").click(showHideSoldTo()); 

所有這些都在文件準備包裝中。爲什麼jQuery沒有點擊點擊? (w /單選按鈕)

+0

你使用的是什麼版本的jQuery? –

+0

請包括您的HTML –

回答

7

從點擊調用中的函數名稱中刪除()。所以..

$("#radio-text-sold-to").click(showHideSoldTo); 
... 
+1

這樣做! DOH! –

2

刪除()從點擊呼叫

函數名稱只是嘗試像

$("#radio-text-sold-to").click(showHideSoldTo); 
$("#radio-select-sold-to").click(showHideSoldTo); 
1

問題是與它應該傳遞到.click()方法的價值爲函數值,而是調用該函數,並因此傳遞該函數的返回值(等於undefined

的解決方法是簡單,你需要刪除()在這兩條線

$("#radio-text-sold-to").click(showHideSoldTo()); 
$("#radio-select-sold-to").click(showHideSoldTo()); 

,使他們成爲

$("#radio-text-sold-to").click(showHideSoldTo); 
$("#radio-select-sold-to").click(showHideSoldTo); 

在JavaScript中的任何標識符標識值。該值可能是一個簡單的值,如整數,或者它可能是一個更復雜的對象,並且您作爲回調或事件處理函數傳遞的值的情況也可能是函數值。

的這兩行代碼基本上是相同的

function myFoo() {} 
var myFoo = function() {} 

而在後者是明確的是右手側被分配給左手側。即功能值被分配給一個標識符。

+0

肯定比我的回答更完整;) –