jQuery onclick选择器不起作用

dra*_*fly 5 jquery jquery-selectors

$( "输入[类型= '按钮'] [^的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);
});
Run Code Online (Sandbox Code Playgroud)

ant*_*ant 6

应该是这样的:

$("input[type=button]").click(function(){
//do something
});
Run Code Online (Sandbox Code Playgroud)

你应该把它放在文件就绪功能中

编辑是你想要的吗?

$('img[src="scroll.gif"]').click(function(){
        var targetOffset = $(this).offset().top; 
        $("html,body").animate({scrollTop: targetOffset}, 400);
    });
Run Code Online (Sandbox Code Playgroud)


Tgr*_*Tgr 1

您可以创建一个自定义选择器(但可能效率很低):

$.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')")
Run Code Online (Sandbox Code Playgroud)

function.name但在 IE 中不起作用,因此您必须使用 toString() 和正则表达式跳过另一个钩子。总而言之,您最好手动维护事件处理程序名称列表。

编辑:查看您的代码片段,似乎根本没有理由搜索事件处理程序。不要乱扔属性选择器,而是使用类和 id 以语义上有意义的方式来寻址元素,例如

 <img id="scroll-icon" src="icons/scroll.gif" />
 <input id="submit-button" type="submit" onclick="save();" />
Run Code Online (Sandbox Code Playgroud)

进而

$("#scroll-icon".click(function(){
  var targetOffset = $("submit-buttton").offset().top; 
  $("html,body").animate({scrollTop: targetOffset}, 400);
});
Run Code Online (Sandbox Code Playgroud)