2013-10-28 268 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

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