我有一个非常奇怪的问题.我的示例代码工作[这里] [1]安静很好,但我在我的aptana工作室编辑器中有完全相同的代码,当我在Chrome或Eclipse浏览器中尝试时,事件就不会触发.我无法想象这是什么问题,因为它完全相同的代码......
HTML
<!DOCTYPE html>
<html>
<head>
<title>OrderScreen</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="js/script.js" type="text/javascript"></script>
</head>
<body>
<a href="">Test</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
jQuery的
$("a").mouseup(function() {
clearTimeout(pressTimer);
// Clear timeout
return false;
}).mousedown(function() {
// Set timeout
pressTimer = window.setTimeout(function() {
alert("hcbdhaf")
}, 1000);
return false;
}).click(function() {
alert("dfsdg");
});
Run Code Online (Sandbox Code Playgroud) 我有一个简单的asp页面,其中包含一个函数myFunction,该函数执行两个数字的加法.
<head runat="server">
<title></title>
<script type="text/javascript">
function myFunction() {
var x = 10;
var y = 5;
x += y;
var demoP = document.getElementById("demo")
demoP.innerHTML = "x=" + x;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<p>
</p>
<p id="demo">
<asp:Button ID="Button1" runat="server"
style="z-index: 1; left: 573px; top: 43px; position: absolute; height: 33px; width: 223px;" Text="Button" OnClick="myFunction()" />
</p>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
当我运行此页面时,它显示错误,找不到myFuntion.
我使用本教程创建了一个基本的javascript函数,用于在给定的时间段内实现更改.
function fadetext(){
if(hex>0) {
hex-=11;
document.getElementById("sample").style.color="rgb("+hex+","+hex+","+hex+")";
setTimeout("fadetext()",20);
}
else
hex=255
}
Run Code Online (Sandbox Code Playgroud)
问题1:如何通过输入变量function; 例如fadetext(element, time).我无法通过简单地用变量替换值来实现.
问题2:通过javascript逐步实现更改是标准(和正确)方法吗?对我来说,困惑在于我们fadetext()在自己的函数中使用函数.这不是超载吗?
$(document).keypress(function (e) {
if (e.which == 13) {
filtruj();
return false;
}
return false;
});
Run Code Online (Sandbox Code Playgroud)
我想filtruj()在用户按下Enter键时调用并阻止页面提交.
通常,单击<a href="#" id="filterButton" onclick="filtruj();" class="t-button t-grid-add">Filtruj</a>元素调用此函数.
相反的是,我无法在表单字段中的任何位置键入内容.
这是一个说明问题的小提琴.我在点击一个元素到'html'元素时添加一个jQuery one绑定.我不期望在下一次单击之前触发'one'事件处理程序,但它会在添加绑定的单击时触发.如果它是添加'one'事件处理程序的更具体元素,这似乎不是问题,但是当我使用'html'或'body'作为元素时会发生这种情况,这就是我想要做的事情.
这对我来说没有意义,我认为第一次点击会为下一次点击添加一个,并且不会点击链接上的点击.
顺便说一下,我的实际问题可能会以更好的方式解决,但我遇到了这个问题并且好奇为什么它没有像我预期的那样工作.
码:
HTML:
<div id='hello'>hello</div>
<a class="title" href="#">this example</a> is a test?
Run Code Online (Sandbox Code Playgroud)
JS:
$(function() {
$('a.title').click(function() {
var htmlClickBind = function (e) {
console.log('clicked on html, e.target = ' + e.target);
console.log(e.target == '');
if (!$(e.target).is('a') ) {
console.log('cleared click event');
}
else {
$('html').one('click', htmlClickBind);
}
};
$('html').one('click', htmlClickBind);
});
});?
Run Code Online (Sandbox Code Playgroud) 我正在尝试禁用点击的链接.我有一个onmousedown事件监听器.
if(document.addEventListener){
document.addEventListener("onmouseover", onMouseOverIdent, false);
document.addEventListener("onmousedown", onMouseDownIdent, false);
document.addEventListener("onmouseout", onMouseOutIdent, false);
}else{
if(document.attachEvent){
document.attachEvent("onmousedown",onMouseDownIdent);
document.attachEvent("onmouseover",onMouseOverIdent);
document.attachEvent("onmouseout", onMouseOutIdent);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的onmousedown函数中,我尝试使用quirksmode中的这个函数:
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
Run Code Online (Sandbox Code Playgroud)
但是它仍然会点击链接并加载它.我不知道是什么导致它,任何帮助将不胜感激.
更新:我忘了提到的另一件事是我在页面上的所有锚标签元素上执行此操作.这似乎使得之后移除那些听众更加成问题.
我希望链接上的所有点击都能执行特定的操作,但mailto链接除外.我有以下代码按预期工作.它首先将该函数附加到所有链接,然后将其从mailto链接中删除:
<a href="http://www.example.com">example.com</a>
<a href="mailto:someone@www.example.com">Someone</a>
<script type="text/javascript">
$('a').on('click', function () {
theAction();
});
$('a[href^="mailto"]').off('click');
</script>
Run Code Online (Sandbox Code Playgroud)
我想要相同的功能,但使用:not()选择器,因为它看起来更优雅.怎么会这样?
我想使用外部Javascript代码将当前日期和时间放在我的XHTML网站的页脚中.我知道函数"document.write".但是如何在HTML中的不同位置创建外部脚本打印日期/时间?
外部脚本:功能日期()
HTML:今天的日期是date()
我该如何实现这一目标?谢谢!
演示: http ://jsfiddle.net/nazym/1/
该代码用于在按下按钮时显示弹出窗口,并在按下其他任何位置时隐藏它.单击按钮两次时会发生错误.
因此,代码应该在重复单击按钮时显示/隐藏弹出窗口.
我在视图中有一个表单,我使用Ajax.BeginForm.我想用javascript代码更改提交按钮的默认行为.我用.on()方法附加了一个处理程序,在处理程序中,我调用了preventDefault()方法.我想知道为什么当我将处理程序附加到根DOM元素时,默认行为不会被取消,但是当我将处理程序直接附加到表单DOM元素时,默认行为将被取消.
风景:
@using (this.Ajax.BeginForm("GetList", "Report", null, new AjaxOptions(), new {id = "OptionForm"}))
{
<input type="submit" id="submitButton"/>
}
Run Code Online (Sandbox Code Playgroud)
将处理程序附加到根DOM元素的脚本(不起作用):
<script type="text/javascript">
$(function () {
$(document).on("submit", "#OptionForm", refreshGrid);
})
</script>
Run Code Online (Sandbox Code Playgroud)
处理程序:
refreshGrid: function (event) {
event.preventDefault();
$.ajax({
url: url,
type: "POST",
data: $(this).serialize(),
success: function (data) {
if (data.success) {
$("#ReferenceList").html(data.result);
}
else {
$("#ValidationSummary").html(data.result);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
最后将处理程序附加到表单DOM元素(Works)的代码:
<script type="text/javascript">
$(function () {
$("#OptionForm").submit = refreshGrid;
})
</script>
Run Code Online (Sandbox Code Playgroud)
谢谢.