我被卡住了.搜索并尝试了几个小时.
编辑:
我仍然无法使它工作.好的,我只需要输入源代码就可以清楚地说明我想要完成的任务.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> <script type="text/javascript"> var date_fmt="yyyy-mm-dd"; var time_fmt="HH:MM"; var date_field="#id_start_0,#id_end_0"; //id refering to html input type='text' var time_field="#id_start_1,#id_end_1"; //id refereing to html input type='text' function clearFmt(fmt_type) { if($(this).val() == fmt_type) { $(this).val(""); } } function putFmt(fmt_type) { if($(this).val() == "") { $(this).val(fmt_type); } } $(document).ready(function() { $(date_field).attr("title",date_fmt); $(time_field).attr("title",time_fmt); $(date_field).click(function() { clearFmt(date_fmt); }); $(date_field).blur(function(){ putFmt(date_fmt); }); $(time_field).click(function(){ clearFmt(time_fmt); }); $(time_field).blur(function(){ putFmt(time_fmt); }); }); </script>
救命 ?
解决方法
使用jquery
bind方法:
function myfunc(param) { alert(param.data.key); } $(document).ready( function() { $("#foo").bind('click',{ key: 'value' },myfunc); });
另见我的jsfiddle.
===更新===
从jquery 1.4.3开始你也可以使用:
function myfunc(param) { alert(param.data.key); } $(document).ready( function() { $("#foo").click({ key: 'value' },myfunc); });
另见我的第二个jsfiddle.
===更新2 ===
每个功能都有自己的功能.在此函数中调用clearFmt后,这不再是单击的元素.我有两个类似的解决方案:
在你的函数中添加一个名为eg的参数元素并用元素替换$(this).
function clearFmt(element,fmt_type) { if (element.val() == fmt_type) { element.val(""); } }
$(date_field).click(function() { clearFmt($(this),date_fmt); });
另见我的third jsfiddle.
– = –
替代:
function clearFmt(o) { if ($(o.currentTarget).val() == o.data.fmt_type) { $(o.currentTarget).val(""); } } $(date_field).click({fmt_type: date_fmt},clearFmt);
另见我的fourth jsfiddle.