我的代码的重要部分:
window.onload = function(){
function someFunction(){
[].forEach.call(
document.querySelectorAll('.button'),
function(btn){
btn.onclick = console.log("I BEEN CLICKED!!");
}
);
}
someFunction()
};
Run Code Online (Sandbox Code Playgroud)
someFunction的console.log版画'我点击了’每次当.button被点击,在加载时间存在.
我如何扩展它以适用于.button稍后使用纯JavaScript(无jQuery)添加的新附加元素?
我有一个带有表单的html页面.它有两个标有Day Shift和Night Shift的单选按钮.我有一个JavaScript IF else语句,说明如果当前时间晚于7:00和19:00之前,则自动默认要检查日移按钮,否则请检查夜班按钮.
我不明白如何根据此声明检查单选按钮.我从单选按钮之前将值放入JavaScript变量,但不是相反.任何帮助都非常感谢.
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" content="HTML,CSS,XML,JavaScript">
<script src="Scripts/autoRadio.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="Styles/Design.css">
</head>
<body>
<form action="WasteEntry.asp" method="post">
<fieldset>
<input type="radio" required name="Shift" id="dayShift" value="Day Shift" >
<input type="radio" name="Shift" id="eveningShift" value="Evening Shift" >
</fieldset>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
var now = new Date().getHours();
if (now > 7 && now < 19) {
document.getElementById('dayShift').checked = true;
} else {
document.getElementById('eveningShift').checked = true;
}
Run Code Online (Sandbox Code Playgroud) 嗨,我只是练习一些JavaScript,我遇到了一个我无法解决的错误.我在我的html中有一个列表,其中每个项链接到一个页面,但我在我的js脚本中有一个函数,当我点击它应该从列表中删除项目的项目时,我正在尝试使用preventDefault()但它仍然需要我到那个链接.
<ul id="shoppingList">
<li class="complete"><a href="google.com><em>fresh</em>tuna</a></li>
<li class="complete"><a href="google.com">meatball</a></li>
<li class="complete"><a href="google.com">kiwi</a></li>
<li class="complete"><a href="google.com">chicken soup</a></li>
</ul>
function getTarget(e){
if(!e){
e = window.event;
}
return e.target || e.srcElement;}
function itemDone(e){
//Remove item from the list
var target;
var Parent;
var Grandparent;
target = getTarget(e);
Parent = target.parentNode;
Grandparent = target.parentNode.parentNode;
Grandparent.removeChild(Parent);
//Prevent the link from taking you somewhere
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue = false;
}
}
//Set up event listeners to call ItemDone() on click
var Shoppo = document.getElementById('shoppingList');
if(Shoppo.addEventListener){ …Run Code Online (Sandbox Code Playgroud) 我不是那样的JavaScript,我有以下问题.
进入JSP页面我有以下"链接":
<tr onmouseout="Javascript: this.style.background='#FFFFFF';
this.style.color='#003399';"
onmouseover="Javascript: this.style.background='#003399';
this.style.color='#FFFFFF'; this.style.cursor='hand';"
onclick="changeLocationTo('edi.do?serv=4.U');">
<td style="border-top: 0px;">
Tabella Anagrafica
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
因此,当用户单击tr元素时,将执行changeLocationTo() JavaScript函数向其传递String'edi.do?serv=4.U'.
在这个页面中,我已经定义了脚本部分:
<script language="JavaScript" src="js/Script.js">
function changeLocationTo(newLocation) {
alert("INTO changeLocationTo, nweLocation: " + newLocation);
loadingPopUp();
// you may add an timeout here or to handle a popup action like closing it
document.location.href = newLocation;
}
</script>
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我点击前面的tr链接时,它不执行changeLocationTo()函数,每次点击tr时,进入FireBug控制台都显示此错误信息:
ReferenceError: changeLocationTo is not defined
Run Code Online (Sandbox Code Playgroud)
为什么?可能是什么问题呢?我该如何解决这个问题?我错过了什么?
TNX
我有以下HTML结构:
<div class=module onclick="systemMenuRevealModule(this)"><span>Dashboard</span>
<div class=module_function><span>Performance</span></div>
<div class=module_function><span>Alerts</span></div>
</div>
<div class=module onclick="systemMenuRevealModule(this)"><span>Favorites</span>
<div class=module_function><span>Dashboard</span></div>
</div>
Run Code Online (Sandbox Code Playgroud)
脚本:
<script>
function systemMenuRevealModule(el){
$('.module_function span').css('display', 'none');
$(this).find(".module_function span").css('display', 'block');
}
</script>
Run Code Online (Sandbox Code Playgroud)
我试图只显示被点击的div内的跨度.这是菜单结构代码的一部分.我试图使这项工作没有ID,使代码更通用.我在控制台中没有看到任何错误,没有任何反应?
当我使用此代码时,它将我的$ .post()绑定到一个表单,并阻止页面重新加载以提交它:
$("#analyze_audio").submit(function (e) {
debugger;
e.preventDefault();
var url = "/analyze_audio";
var dataToSend = {"analyze_audio": "analyze_audio"};
var callback = function (data) {
debugger;
document.getElementById("audioresponse").innerHTML = (data);
};
$.post(url, dataToSend, callback, 'html');
});
Run Code Online (Sandbox Code Playgroud)
但它不会触发我在其中使用的调试器,因此它不会正确地将事件绑定到我的函数.但是,当我使用这个代码片段时,它完美无缺:
$(function() {
$("#analyze_audio").submit(function (e) {
debugger;
e.preventDefault();
var url = "/analyze_audio";
var dataToSend = {"analyze_audio": "analyze_audio"};
var callback = function (data) {
debugger;
document.getElementById("audioresponse").innerHTML = (data);
};
$.post(url, dataToSend, callback, 'html');
});
});
Run Code Online (Sandbox Code Playgroud)
我真的不明白为什么?
我是JavaScript的新手,我有以下问题.进入JSP页面我有这样的事情:
<tbody>
<c:forEach items="${listaProgetti.lista}" var="progetto" varStatus="itemProgetto">
<tr id='<c:out value="${progetto.prgPro}" />'>
<td><input type="checkbox" class="checkbox" onchange="changeCheckbox()"></td>
.....................................................
.....................................................
.....................................................
</tr>
</c:forEach>
</tbody>
Run Code Online (Sandbox Code Playgroud)
所以你可以看到点击复选框它调用这个changeCheckbox()实际上是非常简单的:
function changeCheckbox() {
alert("INTO changeCheckbox()");
var checkedRowList = new Array();
}
Run Code Online (Sandbox Code Playgroud)
问题是,在这个函数中,我必须检索触发change事件的输入对象是什么(我认为这样的事情)
如何在以前的changeCheckbox()函数中获取对单击复选框的引用?
我已经使用Twilio IP消息传递示例作为起点编写了一个简单的聊天。这个想法是在各个客户和管理员之间建立私有渠道。每个客户将有一个单独的带有admin的专用频道。管理员可以选择打开/订阅与特定客户聊天的频道。
我现在面临的问题是我无法取消订阅以前订阅的频道。
这是以管理员,客户端(test1)和客户端(test2)登录的链接:http : //test.verbery.com/
重现此问题的步骤:
技术细节:要订阅频道,我使用了事件“ onMessageAdded”来监听该频道的传入消息:
// Listen for new messages sent to the channel
personalChannel.on('messageAdded', function(message) {
printMessage(message.author, message.body);
});
Run Code Online (Sandbox Code Playgroud)
要取消订阅我尝试过的消息unbind('onMessageAdded'),off('onMessageAdded')但是它不起作用,js控制台说:取消绑定(或关闭)不是功能。
有什么想法如何退订频道吗?
预先感谢,德米特里
我想中断Enter key并停止将html代码注入ContentEditable div。我当前的代码不起作用,因为它不会中断Enter key。但是,如果我键入内容,请按Enter键,然后再次键入,它将删除内部html元素。但是,这不是我想要的。我希望元素在我按Enter时不进入ContentEditable div,而不必将其剥离。
我基本上是用这个作为input that scales with its content。如果有更好的方法可以进行此操作,请告诉我!
import ReactDOM from 'react-dom'
export default class MyInput extends React.Component {
componentWillReceiveProps(nextProps) {
this.setState({value: nextProps.html});
}
shouldComponentUpdate(nextProps){
return nextProps.html !== ReactDOM.findDOMNode(this).innerHTML;
}
componentDidUpdate() {
if ( this.htmlEl && this.props.html !== this.htmlEl.innerHTML ) {
this.htmlEl.innerHTML = this.props.html;
}
}
emitChange(){
var html = ReactDOM.findDOMNode(this).innerHTML;
// regex to remove tags created after pressing enter
value = value.replace(/<div>/g, '');
value = value.replace(/<\/div>/g, '');
value = value.replace(/<br>/g, …Run Code Online (Sandbox Code Playgroud) 我有一个输入字段,当有人开始输入时会生成自动建议.用户无需模糊或点击提交按钮即可显示建议.
当有人停止输入时,我想运行一个功能来跟踪向用户显示哪些产品,以及当前输入字段中的文本字符串.
我添加了一个'input'事件监听器,但我无法正确理解逻辑.
我想doStuff()如果它自上一次输入事件以来已经至少1秒钟.麻烦的是,当用户开始输入时,我的脚本正在触发,因为它基于"更改"事件监听器.
而且我认为必须有一种比我现在做的更合乎逻辑的方式.
另外我担心'输入'事件会影响用户浏览器,因为它在每次击键时运行,也许有更好的方法?
不情愿地在下面显示我的代码块,即使它没有多大意义并且是我较弱的脚本时刻之一,更多地表明我一直在尝试不同的事情.宁愿选择忽略我一直使用的疯狂逻辑的解决方案.
我希望doStuff(e)当用户"停止在输入中输入文本"时,这不是一个确切的定义.用户何时被认为已停止输入?现在我说1秒钟.
不想使用更改事件,因为它错过了许多用户不模糊的事件.
更喜欢纯JS.
var input = document.querySelector('#search_input');
var newinput;
var lastinput;
var diff;
input.addEventListener('input', function(e) {
newinput = new Date();
if(!lastinput) {
lastinput = new Date()
}
diff = newinput - lastinput;
if(diff > 500 && diff < 2000) {
doStuff(e)
}
lastinput = newinput;
}, false);
Run Code Online (Sandbox Code Playgroud)