$( “输入[类型= ‘按钮’] [^的onclick = ‘保存’]”)
它适用于FF,但在IE上…
onclick选择器部件有问题.有没有办法让跨浏览器解决?
谢谢帕维尔
编辑:
$("img[src$='scroll.gif']").click(function(){
var targetOffset = $("input[type='button'][onclick^='save']").offset().top;
$("html,body").animate({scrollTop: targetOffset},400);
});
最佳答案
您可以创建自定义选择器(可能效率非常低):
$.extend($.expr[':'],{
onclick: function(node,index,args,stack) {
var events = $(node).data('events');
var fn = args[3];
if (!events || !events.click) return false;
for (i in events.click) {
if (events.click[i].name == fn) return true;
}
return false;
}
});
$("input[type='button']:onclick('save')")
虽然function.name在IE中不起作用,所以你必须使用toString()和regexps跳过另一个钩子.总而言之,手动维护事件处理程序名称列表要好得多.
编辑:查看您的代码段,似乎没有理由搜索事件处理程序.而不是疯狂地抛出属性选择器,使用类和id以语义上有意义的方式处理元素,例如
然后
$("#scroll-icon".click(function(){
var targetOffset = $("submit-buttton").offset().top;
$("html,400);
});