我对此代码有以下问题:
<button id="delete">Remove items</button>
$("#delete").button({
icons: {
primary: 'ui-icon-trash'
}
}).click(function() {
alert("Clicked");
});
Run Code Online (Sandbox Code Playgroud)
如果单击此按钮,警报将显示两次.它不仅仅是这个特定的按钮,而是我创建的每一个按钮.
我究竟做错了什么?
最近我一直在研究很多关于使用Facebook JavaScript库React.js的功能和方法.当其差异说话的JavaScript的世界往往是两种编程风格的休息declarative和imperative被mentionned.
两者有什么区别?
我有一个使用事件处理程序调用javascript函数的按钮.出于某种原因,事件处理程序被调用两次.
这是我的按钮(我使用php对象生成代码,这就是为什么有很多空标签):
<button name="addToCart" value="" size="" onclick="" src="" class="addToCartButton" id="0011110421111" type="button" formtarget="_self" formmethod="post" formaction="" data-mini="true" width="" height="" placeholder="" data-mini="1" onkeypress="" >Add To Cart</button>
Run Code Online (Sandbox Code Playgroud)
这是我的事件处理程序:
$('.addToCartButton').click(function() {
alert("bob");
//addToCart($(this).attr("id"));
});
Run Code Online (Sandbox Code Playgroud)
在这里,我收到两次警报.
我试过在按钮的onclick属性中调用函数addToCart,但如果我这样尝试,我会收到此错误:
TypeError: '[object HTMLButtonElement]' is not a function (evaluating 'addToCart(0011110421111)')
Run Code Online (Sandbox Code Playgroud)
我也尝试过event.preventDefault()和event.stopPropagation(),但都没有用.
任何想法为什么会这样,或者我可以做些什么来阻止它执行两次,或者如果我从onclick =""调用javascript函数我可能会收到错误?
我有HTML输入和按钮元素.我使用按钮提交表单,打开辅助窗口等.问题是,单击即可转换为2(有时甚至更多)表单提交,或打开另外两个浏览器窗口.我在多个Web浏览器中重现了这个问题.我试过切换jQuery版本,但没有改变任何东西.什么可能导致这种事情发生?
我已经做了一个小提琴,说明了我目前面临的问题.所以每次我关闭并打开一个模态,shown.bs.modal也会多次发射.在这个小提琴中,每当你关闭并打开一个模态时,警报的数量也会增加(当它应该只触发一次时).http://jsfiddle.net/j36h2/1/
function openTestModal(){
$('#testModal').modal({
keyboard: false,
backdrop: 'static'
});
$('#testModal').on('shown.bs.modal', function (e) {
alert('');
});
}
$('.testButton').click(function(){
openTestModal();
});
Run Code Online (Sandbox Code Playgroud) Bootstrap模态事件多次触发,或者更确切地说是之前的一次.我将模态事件包装在一个click函数中,该函数现在返回模态id.
如何确保事件始终只触发一次,并且只有当click函数调用它时?
jQuery的
$('.img-modal').on('click', function () {
// returns #modal-Id
var modalIdClicked = $(this).attr('data-target')
console.log ('modal id clicked from .img-modal = '+ modalIdClicked);
console.log ('.img-modal clicked');
$(modalIdClicked).on('show.bs.modal', function(event) {
console.log ( 'show.bs.modal');
});
});
Run Code Online (Sandbox Code Playgroud)
默认Bootstrap 3.3.2模态HTML
<div class="col-md-7">
<img class="img-modal img-responsive cursor-pointer" data-toggle="modal" data-target="#modal-1" src="www" alt="image">
</div>
<!-- Modal -->
<div class="modal fade top-space-0" id="modal-1" tabindex="-1" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content cursor-pointer" data-toggle="modal" data-target="#modal-1">
<div class="modal-header">
<button type="button" class="close" data-dismiss="#modal-1">CLOSE ×</button>
<h1 class="modal-title">Modal Title</h1>
</div>
<div class="modal-body">
<div …Run Code Online (Sandbox Code Playgroud) 我有一个按钮.当我点击它时,我将一些按钮附加到DOM.
我遇到的问题是那些我多次追加的按钮.
$(el).on('click', function (e) {
key();
});
function key() {
$(document).on('click', '#key li', function () {
console.log($(this));
});
}
Run Code Online (Sandbox Code Playgroud)
第一次key()叫,console.log火一次
第二次我打电话key()的console.log闪光两次
等等
我试过添加$(document).find('#key li').unbind('click'),但这似乎不起作用
有任何想法吗?
编辑:
这是一个jsfiddle示例(如下所示).
$('button').on('click', function () {
$('.cont').remove();
$('.container').remove();
var html = '<button class="cont">click</button><div class="container">placeholder</div>';
$('body').append(html);
key();
});
$(document).on('click', '.cont', function () {
var html = '<div id="but_placeholder"><button class="one">1</button><button class="two">2</button><button class="three">3</button></div>';
$('.container').html(html);
});
function key() {
$(document).on('click', '#but_placeholder button', function () {
$('input').val($('input').val() …Run Code Online (Sandbox Code Playgroud)jquery ×5
javascript ×3
click ×2
bind ×1
button ×1
events ×1
function ×1
htmlbutton ×1
reactjs ×1
unbind ×1