我在C#.Net中编写了一个WinForms程序,在密码表单中以编程方式单击按钮.
Form1加载并显示Form2为对话框.
如果DialogResult是DialogResult.OK的其他任何东西,应用程序将关闭.
到目前为止,我有一个按钮单击事件,编码如下:
if (txtpass.Text == "")
{
MessageBox.Show("You need to enter a password", "Password", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
txtpass.Focus();
}
else
{
if (txtpass.Text == "1234")
{
radButton1.DialogResult = DialogResult.OK;
radButton1.PerformClick();
}
else
{
MessageBox.Show("Password Incorrect", "Password", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtpass.Text = "";
txtpass.Focus();
}
}
Run Code Online (Sandbox Code Playgroud)
我用radButton1.PerformClick();,但运行程序给我以下消息:
An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll
Run Code Online (Sandbox Code Playgroud)
我不确定导致此异常的原因是什么.
我想在普通的JavaScript(不使用jQuery)中添加一个click事件到这样的元素,所以我没有id一个类,而是一个类:
<a href="http://example.com/share" class="MyClass">Yummy</a>
Run Code Online (Sandbox Code Playgroud) 我有一个包含五个列表项的无序列表,每个列表项都有一个链接:
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
使用jQuery,每当我点击这些链接中的任何一个时,我想选择所有其他链接,然后对它们做一些事情(应用一个类等).
我该怎么做呢?
我正在使用Leaflet绘制地图,在弹出窗口中我添加了一个链接,该链接应该导致更详细的描述,描述与地图分开并使用手风琴排列到列表中,因此每个描述都是隐藏的.
我可以使用锚链接到手风琴内容,但我需要执行一些JavaScript,onclick所以我试图添加一个click事件处理程序 - 它无法正常工作.
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<title>Leaflet Quick Start Guide Example</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--<script src="http://leaflet.cloudmade.com/dist/leaflet.js"></script>-->
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="http://code.leafletjs.com/leaflet-0.3.1/leaflet.css" />
<!--[if lte IE 8]><link rel="stylesheet" href="http://code.leafletjs.com/leaflet-0.3.1/leaflet.ie.css" /><![endif]-->
</head>
<body>
<div id="map" style="width: 600px; height: 400px"></div>
<div id="log"></div>
<div id="map_box_text" class="status_half">
<br>
<br>
<p>List made using JQuery UI accordion, every element is hidden, only on hover it opens, you can click on it to display on map, …Run Code Online (Sandbox Code Playgroud) 我在javascript中的点击功能有问题.这是我的代码:
var canvas = document.getElementsByTagName("canvas")[0];
var ctx = canvas.getContext('2d');
BigCircle = function(x, y, color, circleSize) {
ctx.shadowBlur = 10;
ctx.shadowColor = color;
ctx.beginPath();
ctx.arc(x, y, circleSize, 0, Math.PI * 2, true);
ctx.fill();
ctx.closePath();
};
var bigGreen = new BigCircle(1580, 800, '#5eb62b', 180);
function init() {
$("#bigGreen").click(function(e){
alert("test");
});
}
$(document).ready(function() {
init();
});
Run Code Online (Sandbox Code Playgroud)
但点击事件不起作用!有人知道为什么吗?非常感谢你提前!
我的印象是jQuery的on事件处理程序意味着能够"监听"动态创建的元素并且它应该替换它的行为live.但是,我所经历的是使用on不捕获click事件而使用live是成功的!
我的情况的棘手方面是我不仅动态创建内容,而且我通过AJAX .get()调用,并将结果HTML插入模态.dialog()jQueryUI弹出窗口.
这是我试图完成的简化版本(包装$(document).ready(...)):
$.get("getUserDataAjax.php", queryString, function(formToDisplay) {
$("#dialog").dialog({
autoOpen: true,
modal: true,
buttons...
}).html(formToDisplay);
});
$(".classThatExistsInFormToDisplay").on("click", function() {
alert("This doesn't get called");
});
Run Code Online (Sandbox Code Playgroud)
从on我发现的文档中,我正在接近编写我的on活动:
$("p").on("click", function(){
alert( $(this).text() );
});
Run Code Online (Sandbox Code Playgroud)
但是,出于某种原因,live我会按照预期工作 - 而on我却失败了.
这不是一个问题:"我怎样才能使它发挥作用",因为我发现,on一定会成功(捕获点击)如果我宣布它里面的function(formToDisplay)回调.
我的问题是:什么是错的on,这是不是一个模式弹出内找到我的动态创建的元素呢?我的jQuery实例是jquery-1.7.2.jQueryUI是1.8.21.
这里有两个jsFiddles来解决这个问题.单击两个实例中的单词"Test"以查看不同的行为.在代码的唯一区别是更换on了live.
当点击被抓获live.
当点击不是由捕获 …
我通过以下方式成功地向我的网格添加了一个双击事件监听器:
listeners : {
itemdblclick: function(dv, record, item, index, e) {
alert('working');
}
},
Run Code Online (Sandbox Code Playgroud)
现在,我需要在所选行的第三列中获取确切值,我该怎么做?
编辑
好的找到了:
listeners: {
itemclick: function(dv, record, item, index, e) {
alert(record.get('name'));
}
}
Run Code Online (Sandbox Code Playgroud)
但似乎结果record.get('name')不是文字!它是一个对象,但我无法像处理文本那样处理它.任何人都有任何想法吗?
编辑
例如,如果我将名称传递给搜索功能:Search(record.get('name'));这将无效.但如果我这样通过它:Search('Mike');它的作用!
if($('#term').children().length == 0){
$("#term").append("<ul id='ulDynamic' class='ulDynamic'></ul>");
var i;
for(i=1;i<=3;i++){
var liDynamic = "Term "+i;
var liId = "Term"+i;
$("#ulDynamic").append("<li id="+liId+ " class='listDynamic'>"+ liDynamic +"</li>");
if(i==0){
$('#'+liId).click();
}
}
Run Code Online (Sandbox Code Playgroud)
.click()无效,因为liId是动态创建的元素.我想在页面加载时自动点击第一个li元素.还有其他办法吗?
我有一种"小部件" - 一个具有一些丰富功能的数据表,如排序,行选择等.
在某些情况下(在DOM中放置小部件/嵌套),在iOS 7 Safari中不会触发它的行.
Widget使用的是jQuery 1.6.4
我无法发布整个小部件代码(你真的不会发生这种情况;)),但我可以将复制方案缩小到以下情况:
div,通常隐藏并变得可见,然后父行悬停.仅使用CSS触发可见性click事件处理程序.无论它做什么.在我的例子中,它将触发一个alert()overflow-y设置为的块元素auto这是一个jsFiddle:http://jsfiddle.net/822eG/4/
在任何桌面浏览器上,项目成功悬停,将触发单击.在iOS7上,悬停正在运行,但未触发单击.
注意:在iOS上,您必须点击两次才能触发click.首先点击将触发hover,你会看到一个"复选框",然后第二次点击必须触发a click,但它不会......
任何这些条件都需要重现问题.删除一个,它开始工作......
如果删除"复选框"外观 - 单击将起作用(http://jsfiddle.net/822eG/5/).
如果你删除高度修复 - 它将工作(http://jsfiddle.net/822eG/6/).
如果删除溢出滚动 - 它将起作用(http://jsfiddle.net/822eG/8/).
需要任何解决方法,但应保持功能不受影响.所以,我无法删除"复选框",大小修复,悬停,点击或溢出滚动.此外,改变HTML标记几乎不会发生.
注意我有一个解决方案 - 请参阅下面的答案.但是我仍然需要一个更好的解决方法来尽可能地使用CSS.
ADD:向Apple提交了一个错误#16072132
我正在尝试使用CasperJS作为网络抓取工具,并且有一个页面包含按钮,点击时会加载数据.所以,我想首先点击所有这些按钮,然后在实际进行查询之前等待以获取所有必要的数据.
问题是,使用Casper,casper.thenClick(selector)单击第一个元素.但是,如何基于选择器迭代并单击每个元素?
请注意,这些按钮没有ID.它们都有通用的类选择器.
防爆.
<h3>
<span>Text 1</span>
<span>
<button class="load-btn">show</button>
</span>
</h3>
<h3>
<span>Text 2</span>
<span>
<button class="load-btn">show</button>
</span>
</h3>
<h3>
<span>Text 3</span>
<span>
<button class="load-btn">show</button>
</span>
</h3>
Run Code Online (Sandbox Code Playgroud)
由于某种原因casper.thenClick("h3:contains('text 1') .load-btn")不起作用.