代码之家  ›  专栏  ›  技术社区  ›  switz

onclick javascript函数在Firefox中不起作用

  •  0
  • switz  · 技术社区  · 15 年前

    我从来没有听说过这么简单的东西可以在每一个浏览器中使用,但是火狐,有人能解释一下吗?

     <a href="javascript:" onclick="quoteMe('name','id','yourname');" id="quote" style="border:1px solid white;color:#F1F1F1; font-weight:bold;">&nbsp;reply&nbsp;</a>
    

    jquery:查询:

        var nameForm;
    function quoteMe(commenterName, id, name) {
    if (name == "")
    nameForm = 'Name: <input type="text" class="input" name="username" value="" />'
    else
    nameForm = '<div class="outlineTitle2">'+name+'</div>'+'<input type="hidden" class="input" name="username" value="'+name+'" />'
     if (jQuery("#replyForm"+id).length == 0) {
    jQuery("#"+id).append('<form method="post" id="replyForm'+id+'"><br /><input type="hidden" name="cid" value="'+id+'" /><input type="hidden" name="nameOfTable" value="articles" />'+nameForm+'<br />Reply: <input type="text" class="input" name="commentReply" value="'+commenterName+'" style="width:80%" /><input type="submit" value="POST" name="addReply" class="bigButton" /></form>');
    }
    else {
    jQuery("#replyForm"+id).remove();
    }
    

    }

    下面的第一个答案下有更多更新。 http://cl.ly/082z3g04381G3r1i2e08

    2 回复  |  直到 15 年前
        1
  •  0
  •   Ms2ger    15 年前

    你不能把 form 作为一个孩子 table 元素。要么使用表的父节点,要么添加一个单元格。

    (供参考,适当缩进的源版本:

    var nameForm;
    
    function quoteMe(commenterName, id, name) {
        if (name == "") {
            nameForm = 'Name: <input type="text" class="input" name="username" value="" />'
        }
        else {
            nameForm = '<div class="outlineTitle2">' + name + '</div>' +
                       '<input type="hidden" class="input" name="username" value="' + name + '" />'
        }
        if (jQuery("#replyForm" + id).length == 0) {
            jQuery("#" + id).append('<form method="post" id="replyForm' + id + '">' +
                                      '<br />' +
                                      '<input type="hidden" name="cid" ' +
                                      '       value="' + id + '" />' +
                                      '<input type="hidden" name="nameOfTable" ' +
                                      '       value="articles" />' +
                                      nameForm + '<br />' +
                                      'Reply: <input type="text" class="input" ' +
                                      '              name="commentReply" ' +
                                      '              value="' + commenterName + '"' +
                                      '              style="width:80%" />' +
                                      '<input type="submit" value="POST" ' +
                                      '       name="addReply" class="bigButton" />' +
                                    '</form>');
        }
        else {
            jQuery("#replyForm" + id).remove();
        }
    }
    

    )

        2
  •  5
  •   Mic    15 年前

    尝试替换 quoteMe 通过 alert 看看会发生什么。
    如果弹出警报,则表示您的功能有问题。

    内联事件在Firefox上也可以正常工作,下面是我使用的常见调用:

    <a href="javascript:void(0)" onclick="fn(this, param1, param2)">label</a>
    

    甚至更短:

    <a href="javascript:" onclick="fn(this, param1, param2)">label</a>
    
    • 如果使用href=“”,则需要 return false onclick 调用,否则,哈希键将在地址栏中更改。这可能很烦人,尤其是在基于Ajax的应用程序中。

    • 传递给函数通常很有用 this ,它将为您提供对单击的 <a> . 你不必玩弄身份证就能找到它。

    推荐文章