首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么jQuery ui可选择插件会禁用我原来的绑定单击功能

为什么jQuery ui可选择插件会禁用我原来的绑定单击功能
EN

Stack Overflow用户
提问于 2020-09-20 11:43:00
回答 1查看 45关注 0票数 2

当我将jquery.ui-selectable附加到一行时,正常单击有问题。

jquery-ui-selectable按所需工作正常,但我所附的单击不起作用。

我在某个地方读过书

代码语言:javascript
复制
e.metaKey = false; //true i did both, but did not work

我的代码看起来就像这样

代码语言:javascript
复制
 $('#selectable').selectable({filter:'li'})

/* $('#selectable').bind("mousedown", function (e) {
           e.metaKey = true;
 }).selectable() */
 
 
 $('#selectable li').bind("click", function (e) {
    alert('clicked item : '+$(this).text());
});

问题:,我希望我的附加click能像我们期望的那样正常工作。

这里是演示: http://jsfiddle.net/eabangalore/71xvp5ko/

我的项目中有类似的代码,其中click不起作用。

注意:,我希望我的答案在jsfiddle中工作,在这里,它工作起来不知道为什么,我的项目不起作用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-20 12:01:54

如果您想要实际的click函数,那么您需要将pointer-events:none添加到该类ui-selectable-helper中,这样单击事件就不是bubbling up。

现场演示:

代码语言:javascript
复制
$('#selectable').selectable({
  filter: 'li',
})

$("#selectable > li").on('click',function() {
  console.log($(this).text());
});
代码语言:javascript
复制
#feedback {
  font-size: 1.4em;
}

#selectable .ui-selecting {
  background: #FECA40;
}

#selectable .ui-selected {
  background: #F39814;
  color: white;
}

#selectable {
  list-style-type: none;
  margin: 0;
  padding: 0;
  width: 60%;
}

#selectable li {
  margin: 3px;
  padding: 0.4em;
  font-size: 1.4em;
  height: 18px;
}

.ui-selectable-helper {
  pointer-events: none;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

<ol id="selectable">
  <li class="ui-widget-content">Item 1</li>
  <li class="ui-widget-content">Item 2</li>
  <li class="ui-widget-content">Item 3</li>
  <li class="ui-widget-content">Item 4</li>
  <li class="ui-widget-content">Item 5</li>
  <li class="ui-widget-content">Item 6</li>
  <li class="ui-widget-content">Item 7</li>
</ol>

您可以简单地使用已选择方法的jQuery selectable插件-有,没有需要做额外的bindclick函数,以获得点击的项目li文本()。

现场工作演示:

代码语言:javascript
复制
$('#selectable').selectable({
  filter: 'li',
  selected: function(event, ui) {
    var selectedLi = $(ui.selected).text()
    console.log(selectedLi); //clicked li item text
  }
})
代码语言:javascript
复制
#feedback {
  font-size: 1.4em;
}

#selectable .ui-selecting {
  background: #FECA40;
}

#selectable .ui-selected {
  background: #F39814;
  color: white;
}

#selectable {
  list-style-type: none;
  margin: 0;
  padding: 0;
  width: 60%;
}

#selectable li {
  margin: 3px;
  padding: 0.4em;
  font-size: 1.4em;
  height: 18px;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<ol id="selectable">
  <li class="ui-widget-content">Item 1</li>
  <li class="ui-widget-content">Item 2</li>
  <li class="ui-widget-content">Item 3</li>
  <li class="ui-widget-content">Item 4</li>
  <li class="ui-widget-content">Item 5</li>
  <li class="ui-widget-content">Item 6</li>
  <li class="ui-widget-content">Item 7</li>
</ol>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63978607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档