javascript - Sweet Alert 框我添加了 4 个按钮,只有一个按钮可以工作

标签 javascript jquery html

甜蜜警报框我添加了 4 个按钮,只有一个按钮可以工作。 4个按钮指向同一个框和同一个div,问题是当我们点击第一个按钮时,弹出窗口出现,第二个按钮弹出窗口不出现,如何解决这个问题?

JS:

document.querySelector('ul.examples li.input button').onclick = function(){
    swal({
        title: "An input!",
        text: 'Write something interesting:',
        type: 'input',
        showCancelButton: true,
        closeOnConfirm: false,
        animation: "slide-from-top",
        inputPlaceholder: "Write something",
    },
    function(inputValue){
        if (inputValue === false) return false;

        if (inputValue === "") {
            swal.showInputError("You need to write something!");
            return false;
        }

        swal("Nice!", 'You wrote: ' + inputValue, "success");

    });
};

HTML:

    <html>
      <head>
        <script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>

        <script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
        <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css">

      </head>
      <body>

      <ul class="examples">
        <li class="input"> <div class="ui"> <button> 1 </button> </div> </li> <br> 
        <li class="input"> <div class="ui"> <button> 2 </button> </div> </li> <br> 
        <li class="input"> <div class="ui"> <button> 3 </button> </div> </li> <br> 
        <li class="input"> <div class="ui"> <button> 4 </button> </div> </li> <br> 
        </ul>
      </body>
    </html>

<!-- end snippet -->

最佳答案

使用querySelectorAll。 因为它返回所有元素,所以你应该循环返回的值,如 follow

var buttons = document.querySelectorAll('ul.examples li.input button');

for (var i = 0; i < buttons.length; i++) {
  buttons[i].onclick = function(){
	swal({
		title: "An input!",
		text: 'Write something interesting:',
		type: 'input',
		showCancelButton: true,
		closeOnConfirm: false,
		animation: "slide-from-top",
		inputPlaceholder: "Write something",
	},
	function(inputValue){
		if (inputValue === false) return false;

		if (inputValue === "") {
			swal.showInputError("You need to write something!");
			return false;
		}
    
		swal("Nice!", 'You wrote: ' + inputValue, "success");

	});
};
}
<html>
<head>

 
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css">




</head>

<body>
 
<ul class="examples">


	<li class="input"> <div class="ui"> <button> 1 </button> </div> </li> <br> 
	<li class="input"> <div class="ui"> <button> 2 </button> </div> </li> <br> 
	<li class="input"> <div class="ui"> <button> 3 </button> </div> </li> <br> 
	<li class="input"> <div class="ui"> <button> 4 </button> </div> </li> <br> 


	
</ul>



</body>
 
 
 

 
 
</html>

关于javascript - Sweet Alert 框我添加了 4 个按钮,只有一个按钮可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42499460/

相关文章:

javascript - React.js 如何在两个组件接受相同参数时提取出一个方法?

javascript - 创建堆叠图像视差

php - 使用 jQuery AJAX 传递复选框数据

php - 在模式中单击按钮后重定向到另一个页面

javascript - 同步访问两个远程资源并在组合响应中输出 - NodeJS

javascript - 如何通过这个获取特定的div?

javascript - 从另一个属性引用 js 属性的正确方法

javascript - WebdriverIO waitForExist() 选择元素的选定选项

java - 无法使用 ENTER 键调用函数

html - 等距 map 的平滑拖动滚动 - Html5