社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

jquery向事件处理程序返回true,但事件(get input)不会结束

Trebly • 4 年前 • 128 次点击  

我有一个表单,它包含了输入的无线电元素(在标题下的第二层)到标题(生成一个选择)-这已经过测试,功能正常。

要管理头,我有一个查询事件单击,当头不在所描述的情况下执行(验证)操作。因此,如果我们不了解这些情况,.click event simple返回true,以便在测试之后继续(一个简单的if)。

问题是没有执行输入(从来没有选中标题中的单选按钮)。

注意:如果执行了操作(没有完成测试),则执行操作,需要用户再次单击以选中单选按钮。这是我唯一可以检查单选按钮的箱子。

js代码是(摘要):

$(".H_title")
        .focusin(function(event) {
            if ( ... )  { do stuff }
            return true; // go on action
          } )
        .focusout(function() {...do_stuff);} );
//END

原因可能是什么?

注意:我无法将任何内容更改为我操作的html结构,因为它是由多个代码(php和其他js)生成的。我必须能够检查单选按钮进入页面,而不改变结构和内容。

最好的问候

高音

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/41248
 
128 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Trebly
Reply   •   1 楼
Trebly    5 年前

感谢查利特菲在这个问题上的帮助。

我知道我的解释不够准确,不足以理解这个案子。我在复制代码时还引入了一个错误。

有一个真正的问题,我已经找到了一个达到目标的解决方案,但我不确定为什么它不起作用,为什么它现在起作用。

有两个发展步骤:

1-只需在单击标题中的一个跨距时执行stuff(但在按下shiftkey时不涉及聚焦元素的其他stuff)。 HTML结构包含:

<h5>
   <span class="toc-target" tabindex="1000"> <!-- puts the "target" on top -->
      <span class="H_title">
           Adhérent
      </span>
   </span>
   <span class="endof_tocid"></span>
</h5>

前两级跨度的原因是,它是由两个不同的软段完成的,需要两个不同的类。

相关代码(自三年前起)为:

$(".H_title")
        .click(function(event) {
            if ( ... )  { do stuff1 }
            return true; // go on action
          } )
        .focusin(function() {...do_stuff2a);} );
        .focusout(function() {...do_stuff2b);} );
//END

2-在某些情况下,我需要一个单选按钮,在这种情况下不执行stuff1(只需在标题中添加一个输入),然后HTML代码变成:

<h5>
   <span class="toc-target" tabindex="1000"> <!-- puts the "target" on top -->
      <span class="H_title">
         <input name="user_type" type="radio" value="adh">
           Adhérent
      </span>
   </span>
   <span class="endof_tocid"></span>
</h5>

我写的js代码不起作用:

$(".H_title")
        .click(function(event) {
            if ( ... )  { do stuff1 }
            return true; // go on action of the click on the button
          } )
        .focusin(function() {...do_stuff2a);} );
        .focusout(function() {...do_stuff2b);} );
//END

在我看来,这个错误似乎是单选按钮在没有代码管理事件的情况下无法进入h_title范围。注意:这与聚焦动作和事件是一样的。

如果没有为click事件编写jquery代码,则一切正常运行。

//BEGIN    
$(".toc-target > input")
      .click( function(){ return true; }); 
      .focusin(function() {return true; } );
      .focusout(function() {return true; } );
$(".H_title")
        .click(function(event) {
            if ( ... )  { do stuff1: move-top }
            return true; // go on actions
          } )
        .focusin(function() {...do_stuff2a);} );
        .focusout(function() {...do_stuff2b);} );
//END

有了这段代码,点击输入函数,什么是行为: 1 - $(".toc-target > input") 事件将被引发并返回true,这似乎不会导致单选按钮和事件气泡的正常选择。 2-H_标题得到他的点击事件,并正常执行。

现在focusin focusout还不能与按钮结合使用,我认为问题来自于与单击的冲突(单击时标题获得焦点的事实)。 我必须澄清一些关于人体工程学的要点和兼容性(可在个人电脑和手机上获得)。

另一个解决方案可能是从h_u title到“input”的“传播” 但是我还没有找到一个好的方法来把所有需要的事情都整合到stuffxx中,并清楚地将操作分离开来。

可能是我错了,也可能是你有一些建议要用最好的方式去做。

最好的问候

高音