我有一个jquery的小问题:我需要做这样的事情:
$(document).ready(function(){
links = {};
links.a = "Link a";
links.b = "Link b";
links.c = "Link c";
for (x in links){
$("#" + x).css("border","1px solid #000");
$("#" + x).click(function(){
alert(x);
});
}
});
</script>
<div id="a">a</div><br />
<div id="b">b</div><br />
<div id="c">c</div><br />
Run Code Online (Sandbox Code Playgroud)
因此,当您单击div#a时,您将获得"链接a"警报,div#b上的"链接b"等等...问题是如果您运行此代码,则单击每个元素将发出警报(结果,"链接c")似乎只为每个div分配了最后一个函数变量...
当然我可以通过编辑函数来使用div的id并使用$(this)来破解它,但是对于cursiosity:有没有办法让这个循环工作?通过为函数中的每个元素创建和分配新函数?
先谢谢......
我刚刚将我的Ubuntu从9.04升级到9.10,我正在尝试使用Eclipse Galileo解决一个非常烦人的问题.
问题是Eclipse没有捕获一些按钮点击.例如,我试图安装一个插件,然后我点击下一步,然后什么也没发生.
在升级我的Ubuntu版本之前,我没有遇到同样的问题.
我想在普通的JavaScript(不使用jQuery)中添加一个click事件到这样的元素,所以我没有id一个类,而是一个类:
<a href="http://example.com/share" class="MyClass">Yummy</a>
Run Code Online (Sandbox Code Playgroud) 我开发了一个带有多个按钮的android小部件.它工作正常,我第一次添加.但是当我重新启动设备按钮时不会触发.这就是我的所作所为
这是xml配置
<receiver android:name="com.islem.widget.MyWidgetMain" android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<!-- Broadcast Receiver that will also process our self created action -->
<action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER1"/>
<action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER2"/>
<action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER3"/>
<action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER4"/>
<action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER5"/>
<action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RECEIVER6"/>
<action android:name="com.islem.widget.KalanWidgetMain.ACTION_WIDGET_RELOAD_ALARM"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/k_widget_provider" />
Run Code Online (Sandbox Code Playgroud)
这是onUpdate方法
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
for (int appWidgetId : appWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.kalan_widget_main);
Intent refreshButtonIntent = new Intent(context, KalanWidgetMain.class);
refreshButtonIntent.setAction(ACTION_WIDGET_RECEIVER1);
Intent voiceTabIntent = new Intent(context, KalanWidgetMain.class);
voiceTabIntent.setAction(ACTION_WIDGET_RECEIVER2);
Intent dataTabIntent = …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)
但点击事件不起作用!有人知道为什么吗?非常感谢你提前!
我通过以下方式成功地向我的网格添加了一个双击事件监听器:
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');它的作用!
我有html元素foreach.我无法手动为这些人声明ID名称.我曾经 id='ProductSelect_@(item.Id)'设置过Id:
foreach (var item in Model)
{
<a href="#" id='ProductSelect_@(item.Id)' class="select-link">Select this</a>
}
Run Code Online (Sandbox Code Playgroud)
但是,现在我需要.click()函数为eash <a>链接做我的一些操作.如何为动态ID写点击功能?
我检查了这个,但它不起作用:
$("#ProductSelect_@(item.Id)").click(function () {
//any operation
});
Run Code Online (Sandbox Code Playgroud)
编辑:
<script>
$(document).ready(function () {
$('.select-link').click(function() {
var id = $(this).attr('data-id');
url = '@Url.Action("SelectThis", "Product")';
var data = { id: '@Model.Id' };
$.post(url, data, function (result) {
if (result.success) {
alert("Thanks");
}
else {
alert("Problem occured...");
}
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
此click()函数将请求发送到控制器迭代计数次数.我的代码有什么问题?
我收到这个JS错误:ReferenceError:当我使用Firefox 23 时尝试将事件对象传递给单击绑定时未定义事件.在Chrome下,一切正常
这里的代码:
<!-- ko foreach: entries -->
<tr data-bind="click: function(){ $parent.expandRow($data, event) }">
...
</tr>
<!-- /ko -->
vm.entries.expandRow = function(entry, event){
...
}
Run Code Online (Sandbox Code Playgroud) 我有一个Winform应用程序,我在使用TreeView.此应用程序的某些用户遇到的问题是他们必须双击某个节点才能展开它.所以我添加了这段代码,使用单击来展开节点:
Private Sub MyTreeView_NodeMouseClick(sender As System.Object,
e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles MyTreeView.NodeMouseClick
If e.Node.IsExpanded Then
e.Node.Collapse()
Else
e.Node.Expand()
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
这有效,但我注意到有关点击节点的奇怪行为.我注意到有两个地方有不同的行为.第一个位置是+/-符号,旁边是点(图片中的第一个圆圈),第二个位置是节点的文本(第二个圆圈):

通常,单击第一个位置就足以展开节点,必须在第二个位置双击才能展开节点.然后,当我使用我的代码时,单击第二个位置就足以扩展节点,但是当我单击第一个位置时,节点将展开并折叠.
为什么用户必须在第二个位置再次点击两次才能展开节点?如何通过单击两个位置来扩展节点?感谢你们!
我正在尝试使用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")不起作用.
click ×10
javascript ×6
events ×2
jquery ×2
android ×1
asp.net-mvc ×1
attributes ×1
binding ×1
button ×1
canvas ×1
casperjs ×1
dom-events ×1
double-click ×1
eclipse ×1
extjs ×1
extjs4 ×1
firefox ×1
function ×1
galileo ×1
gridpanel ×1
knockout.js ×1
onclick ×1
treenode ×1
treeview ×1
ubuntu-9.10 ×1
web-scraping ×1
widget ×1
winforms ×1