p.showadd = function(sender, code,_id,tagstr){
var obj = _$(sender || '#tjzxg');
        alert(obj);
var position = [
obj.offset().left - _$(document).scrollLeft(),
obj.offset().top - _$(document).scrollTop() + obj.height()
];
code = code || '';
var d = _$('#tjzxgbox').dialog({  
closeOnEscape:true,
modal:true,
closeText:'',
title:'',
position:position,
width:330
});
// 判断添加还是修改
//var stock = mystock.findOne(code);
var stock = mystock.findByID(_id);
       
if(stock){
// 修改股票
d.find('a.btnok').hide();
d.find('a.btnedit').show();
d.find('#add_taginput').val(stock['Tag'].join(' ')).focus();
d.find('a.btnedit').unbind('click').click(function(){
var symbol = _$.trim(_$('#add_codeinput').val());
var code = _$.inArray(symbol.substr(0,2),['60','90'])!=-1 ? '0'+symbol : '1'+symbol;
var tagstr = _$.trim(_$('#add_taginput').val());
var tags = tagstr.match(site.tagsplit) || [];
mystock.changetag(code, tags, p.ontagchange);
d.dialog('close');
return false;
});
// 加载tag建议
window.setTimeout(function(){
d.find('#add_codeinput').val(code.length==7 ? code.substr(1) : code).blur().attr('disabled', 'disabled');
}, 100);
}else{
// 添加股票
d.find('a.btnok').show();
d.find('a.btnedit').hide();
d.find('#add_taginput').val(tagstr || '').focus();
d.find('a.btnok').unbind('click').click(function(){
var symbol = _$.trim(_$('#add_codeinput').val());
var code = _$.inArray(symbol.substr(0,2),['60','90'])!=-1 ? '0'+symbol : '1'+symbol;
var tagstr = _$.trim(_$('#add_taginput').val());
page.add(code, tagstr);
d.dialog('close');
return false;
});
// 加载tag建议
window.setTimeout(function(){
d.find('#add_codeinput').val(code.length==7 ? code.substr(1) : code).removeAttr('disabled').blur();
}, 100);
}
d.find('#add_systags').empty();

d.find('a.btncancel').unbind('click').click(function(){
d.dialog('close');
return false;
});
$(sender||'#tjzxg')这句代码中间的" ||" 什么意思?_$('#tjzxg').click(function(){
page.showadd(this);
});
这是调用上面函数,参数只用了一个this, 那showadd()函数中的参数值是怎么调用的?