Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery上的冲突&x2B;Bootstrap e.stopPropagation()_Javascript_Jquery_Twitter Bootstrap - Fatal编程技术网

Javascript jQuery上的冲突&x2B;Bootstrap e.stopPropagation()

Javascript jQuery上的冲突&x2B;Bootstrap e.stopPropagation(),javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我使用Bootstrap进行了以下设计,它位于中的dropdown.js: 单击搜索条件按钮后,将显示一个高级下拉菜单(实际上,它是一个实现dropdown.js)的表单。这种设计的缺点是,每次单击表单中的任何元素时,表单都将隐藏(下拉菜单的默认行为)。因此,用户无法键入/选择表单的任何控件。解决这个问题的办法很简单: $("form input, form select") .click(function(e) { e.stopPropagation();

我使用Bootstrap进行了以下设计,它位于中的
dropdown.js

单击搜索条件按钮后,将显示一个高级下拉菜单(实际上,它是一个实现
dropdown.js
)的
表单。这种设计的缺点是,每次单击
表单
中的任何元素时,表单都将隐藏(下拉菜单的默认行为)。因此,用户无法键入/选择表单的任何控件。解决这个问题的办法很简单:

$("form input, form select")
    .click(function(e) {
    e.stopPropagation();
});
但问题是上面的代码也会影响按钮组
模式
的默认行为,这是Bootstrap的Checkbox/Radio
button.js
的一个实例。上述代码导致此按钮组不可更改(例如,即使您单击按钮
高级
,也将始终选择按钮
详细


我怎么能不让
下拉列表.js
按钮.js
相互冲突呢?

如果搜索条件表单可见,停止传播怎么样

$("form input, form select").click(function(e) {
   if ($("#searchCriteriaFormId").is(":visible") ) {  
     e.stopPropagation();
   } 
});

这就是帮助我的代码。我没有避免使用
e.stopPropagation()


你能用一个问题来表示这个问题吗?您是否尝试过使用
focus()
而不是
click()
?演示可以帮助你发布相关的HTML吗?试试手动实现,比如@Alteyss我附加了一个
$("form.dropdown-menu, form.dropdown-menu .form-control").click(function(e) {
    e.stopPropagation();
})

$("form.dropdown-menu label.btn").click(function(e) {
    $(this).closest("form.dropdown-menu").find("label.btn").removeClass("active")
    $(this).closest("form.dropdown-menu").find("label.btn input").removeAttr("checked")

    $(this).addClass("active")
    $(this).find("input").attr("checked", "")

    e.stopPropagation();
})