function changeInitial(init,alter)
{
<!--alert(alter);-->
init.parent().hide();
alter.parent().show();
}
<div class="form_item">
<div class="form_label">
<label>Account</label>
</div>
<span id="new_ac">
<input type="text"/>
<a id="create_ac" onclick ='changeInitial($("#create_ac, #select_ac"));'>
Select Existing Account
</a>
</span>
<span id="existing_ac">
<select>
<option>Select an account</option>
<option>Customer</option>
<option>Competitor</option>
<option>Investor</option>
<option>Partner</option>
<option>Reseller</option>
<option>Supplier</option>
</select>
<a id="select_ac">Create new Account</a>
</span>
</div>
Firebug一直告诉我“alter”未定义。请问有什么我想念的吗? “init”工作正常。
答案 0 :(得分:3)
在HTML中的“changeInitial(...)”调用中,请更改为:
onclick='changeInitial($("#create_ac"), $("#select_ac"));'
你这样做的方式只是指定一个参数。
答案 1 :(得分:2)
应该是:
onclick ='changeInitial($("#create_ac"),$("#select_ac"));'
否则它只是一个jquery对象。
答案 2 :(得分:2)
你为什么使用onclick?
使用jquery代替:
$(document).ready(function() {
$('#create_ac').click(function(){
changeInitial($("#create_ac"), $('#select_ac'));
});
});
function changeInitial(init,alter)
{
<!--alert(alter);-->
init.parent().hide();
alter.parent().show();
}
在此处查看我的示例 - http://jsfiddle.net/ajthomascouk/qqksd/
<强>更新强>
$(document).ready(function() {
$('#create_ac').click(function(){
changeInitial($("#create_ac"), $('#select_ac'));
});
$('#select_ac').click(function(){
changeInitial($("#select_ac"), $('#create_ac'));
});
});
更新2
$(document).ready(function() {
$('a').click(function(){
changeInitial($(this).attr('id'), $('#select_ac'));
});
});
答案 3 :(得分:2)
- DEMO: http://jsbin.com/ehumu4/4 (已更新)
$(function(){
$('span a').click(function(){ //work with pairs just like an accordion
$(this).parent(':visible').hide().siblings().show();
});
});
<!-- you should use classe's instead of id's -->
<span><a href="#" class="select_ac">Create new Account</a></span>
<span><a href="#" class="create_ac">Select Existing Account</a></span>
.existing_ac {display:none } /* hidden at page load */