账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何只让某些事件通过直接操作(比如点击),但不能通过通过其他button关联的onclick事件触发
    41
    0

    我的HTML页面是这样的:

    +++++++++++++++++++++++++整个页面是 div1 ++++++++++++++++++++++++++++++++
    +++++++++++++++++++++++++div1的子div div1A+++++++++++++++++++++++++
    订单信息
    订单1 概要信息
    订单2 概要信息
    订单3 概要信息
    订单4 概要信息

    页面 1 2 3 4 5 ....
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    点击某个订单后(onclick函数是gotoDetail ),出现这个订单的详情,展现出来的页面是:

    +++++++++++++++++++++++++div1的子div div1B+++++++++++++++++++++++++

    【回到订单主页】 <<<<<< 此为button (onclick函数是gotoList )

    ++++订单概要

    ++++购物清单

    ++++付款信息

    ++++地址信息

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    点击 "++++购物清单" 或 "++++付款信息" 可以展开或收缩。 因为我希望随着点击++++, div2的长度可以自由伸缩(假定必须如此,而不是其他方法(比如html里不定义高度来实现))。我的做法是,在gotoDetail的h函数,对每个"++++购物清单" 或 "++++付款信息" 的伸缩绑定事件,计算出每个div(订单概要或购物清单都是独立的子div), 再求和来给div1B设置高度。这个做起来没有问题。

    问题是,当用户点 【回到订单主页】 button时(触发了gotoList),需要做复位操作,既++++订单概要 是展开的,其他都要缩回去,无论客户当时展开了哪些。 我想做的时,此时的复位操作,不要再去触发重新设置div1B的高度了。

    请问有什么好的办法吗?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 共 0 条
    • 独自上岸自我救赎 普通会员 1楼

      你可以使用JavaScript的addEventListener方法来监听事件。这个方法接收两个参数:要监听的事件名称和事件处理函数。事件处理函数是函数调用,用于处理事件。

      以下是一个例子,它只监听一个按钮的点击事件,但阻止通过其他按钮关联的onclick事件触发:

      ```javascript // 获取要监听的按钮 var button = document.getElementById('myButton');

      // 添加事件监听器 button.addEventListener('click', function() { // 阻止通过其他按钮关联的onclick事件触发 button.onclick = function() { alert('This button is clicked'); }; }); ```

      在这个例子中,#myButton是按钮的id。addEventListener方法将按钮的点击事件添加到一个名为click的事件处理器中。这个处理器阻止了按钮关联的onclick事件触发。

      注意:这种方法只在同级元素之间有效。如果你想在子元素之间设置事件监听器,你需要使用addEventListener方法,而不是onclick属性。例如,如果你想在子元素childElement的子元素中设置事件监听器,你可以这样做:

      ```javascript // 获取要监听的子元素 var childElement = document.getElementById('childElement');

      // 添加事件监听器 childElement.addEventListener('click', function() { // 阻止通过其他子元素关联的onclick事件触发 childElement.onclick = function() { alert('This child element is clicked'); }; }); ```

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部