zoukankan      html  css  js  c++  java
  • 对.CLICK()脚本方法的无语

    <script type="text/javascript">
                        $(document).ready(function () {
                            var myAccountTab = document.getElementById("menuUl");
                            var myAccountTabLi = myAccountTab.getElementsByTagName("li");
                            var modifyContentdiv = $("#subTabs>div");
                            for (i = 0; i < myAccountTabLi.length; i++) {
                                myAccountTabLi[i].onclick = function () {
                                    $(this).addClass("selected").siblings().removeClass("selected");
                                    for (j = 0; j < myAccountTabLi.length; j++) {
                                        if (myAccountTabLi[j] == this) {
                                            $(modifyContentdiv[j]).siblings().hide();
                                            $(modifyContentdiv[j]).fadeIn("fast");
                                        }
                                    }
                                }
                            }
                        });
                        function ClicksubBrand(p) {
                        var myAccountTab = document.getElementById("menuUl");
                        var myAccountTabLi = myAccountTab.getElementsByTagName("li");
                            if (p ==1) {
                                $(myAccountTabLi[4]).click();
                            }
                        }
                        $(function () {
                            ClicksubBrand(<%=Index%>);
                        });
                    </script>

    请看用红色标的脚本,刚开始我用myAccountTabLi【4】.click()。当时用firefox测试怎么没有反应后面转成红色部分就可以。

    为什么还要用$转成jquery对象在.click(),刚开始觉得很郁闷,上网查了下原来JAVASCRIPT脚本的.CLICK()方法只支持IE4.0以上版本对别的游览器不兼容,无语,JAVASCRIPT脚本兼容性也太差了。只有强制转成jquery对象了。

    如果不转也是有办法的:请看下面,但是感觉这种很烦

    对于HTML页面上的超链接(HREF),并不是所有的浏览器都支持其click方法。

    在IE浏览器(4.0以上版本)中,我们可以使用click方法来模拟一个超链接的点击操作。比如:

    document.links[someLinkIndex].click();

    click方法首先触发元素的onclick事件;如果onclick事件返回true则继续打开超链接所指向的URL。

    但在其他浏览器(比如NS,firefox等)中,并没有提供这样一个方法。不过你可以通过以下的javascript代码为这些浏览器也增加对click方法的支持:

    <SCRIPT LANGUAGE="javascript1.2">
    function linkClick () {
      var executeAction = true;
      if (this.onclick) {
        executeAction = this.onclick({type: 'click'});
      }
      if (executeAction)
        open (this.href, this.target ? this.target : '_self');
    }
    function initLinkClick () {
      if (document.layers && document.links.length > 0)
        document.links[0].constructor.prototype.click = linkClick;
    }</SCRIPT>
    </HEAD>
    <BODY ONLOAD="initLinkClick();">

    通过在onload的时候为links元素加载prototype,你就可以在页面实现IE/NS兼容的click方法:

    <A HREF=http://www.meidi.net/ ONCLICK="alert(event.type); return true;">
    link1</A>
    |<A HREF=http://www.meidi.net/ TARGET="_blank">
    link2</A>
    |<A HREF="http://www.meidi.net" ONCLICK="alert(event.type); return
    false;">
    link3</A>
    |
    <BR><FORM><INPUT TYPE="button"  VALUE="link1 click"
       ONCLICK="document.links[0].click();"><INPUT TYPE="button"  VALUE="link2 click"
       ONCLICK="document.links[1].click();"><INPUT TYPE="button"  VALUE="link3 click"
       ONCLICK="document.links[2].click();"></FORM>

  • 相关阅读:
    数据结构-树与二叉树-思维导图
    The last packet successfully received from the server was 2,272 milliseconds ago. The last packet sent successfully to the server was 2,258 milliseconds ago.
    idea连接mysql报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property
    redis学习笔记
    AJAX校验注册用户名是否存在
    AJAX学习笔记
    JSON学习笔记
    JQuery基础知识学习笔记
    Filter、Listener学习笔记
    三层架构学习笔记
  • 原文地址:https://www.cnblogs.com/scottpei/p/2366789.html
Copyright © 2011-2022 走看看