Jquery打破了OnClick函数

时间:2014-02-05 14:14:15

标签: javascript jquery html

我一直很满意地使用像这样的提交按钮

<a href="javascript:void()" onclick="document.booking.submit()" class="buttonavail"></a>

一段时间了。该类定义了按钮的位置及其外观。

现在我已经在页面中添加了一个Jquery脚本,该按钮不再有效。脚本是

$(document).ready(function() {
    $("#tabcontent > div").hide(); // Initially hide all content
    $("#tabs li:first").attr("id","current"); // Activate first tab
    $("#tabcontent div:first").fadeIn(); // Show first tab content

    $('#tabs a').click(function(e) {
        e.preventDefault();
        if ($(this).closest("li").attr("id") == "current"){ //detection for current tab
         return       
        }
        else{             
        $("#tabcontent > div").hide(); //Hide all content
        $("#tabs li").attr("id",""); //Reset id's
        $(this).parent().attr("id","current"); // Activate this
        $('#' + $(this).attr('name')).fadeIn(); // Show content for current tab
        }
    });
$('#prices').load('../prices.php?hid=<?php echo $hid;?>');
});

据推测,这与在href中使用“javascript:void()”有关,但我看不出原因。是否有另一种方法来编写href以使两者一起工作?

部分解决方案 这个问题并不是我认为的那样。最后,我发现父页面和Jquery正在加载的页面都包含一个具有相同名称的页面。重新命名其中一个表单解决了问题的这一部分。

然而现在我已经找到了另一个看起来是两个Jquery之间冲突的问题。我在Jquery - Scripts are conflicting

询问了另一个问题

2 个答案:

答案 0 :(得分:1)

更改功能如下。在函数的最后一行添加提交,如我所示

 $('#tabs a').click(function(e) {
        e.preventDefault();
        if ($(this).closest("li").attr("id") == "current"){ //detection for current tab
         return       
        }
        else{             
        $("#tabcontent > div").hide(); //Hide all content
        $("#tabs li").attr("id",""); //Reset id's
        $(this).parent().attr("id","current"); // Activate this
        $('#' + $(this).attr('name')).fadeIn(); // Show content for current tab
        }
        $(this).submit() **// ADD HERE**
    });

答案 1 :(得分:0)

$('#tabs a').click是你的问题。您正在使用此代码覆盖<a>标记的点击事件。

您可以将jQuery代码更新为:

$('#tabs a:not(.buttonavail)').click