var value;
$("#Grid1").click(function(e) {
var row = jQuery(e.target).parent();
value= row.attr("id");
});
var onrowclick = function() {
("#Grid1").click($("#showgrid").load('/Names/Friends/satish/' + value));
};
我正在尝试在网址上发送值。
当我这样给出时,我没有得到输出结果。 我这样做了吗?
我在同一网格上处理点击事件的问题是两次吗?
答案 0 :(得分:2)
很难说没有看到HTML,但我认为你正在尝试这样做:
// Initialize variables outside of the handler
var row;
var value;
$("#Grid1").click(function(e) {
// Assign values to variables when event handler fires
row = jQuery(e.target).closest('tr');
value= row.attr("id");
$("#showgrid").load('/Names/Friends/satish/' + value);
});
// Now you can access the local variables
function someFunction() {
alert(value);
alert(row.get(0));
}
我将parent()
更改为closest()
,因为我不知道您的HTML结构。
修改强>
为清楚起见,我假设#Grid1
是某种容器(也许是table
),而您正在点击tr
内容中的某些内容。 #showgrid
是容器外部的一个单独组件,用于显示其他信息。
修改强>
我将从您的评论中假设您需要从处理程序外部访问行元素和/或ID。我已经更新了示例,以反映如何做到这一点。如果那不是你的意思,请告诉我。
答案 1 :(得分:1)
更新:回复您的评论:
如果要在click事件之外分配变量,可以执行以下操作:
$(function () {
// declare the variable.. this one will hold the parent id
var my_value;
// now the click event...
$("#Grid1").click(function(e) {
e.preventDefault();
// my_value now is setted outside...
my_value = $(this).parent().attr("id");
});
// now for the example we observe the click event you can use it in other way!
$('#Grid1').bind( 'click' , function() {
// now as you can see we are using my_value that come from outside!
$('#showgrid').load('/Names/Friends/satish/' + my_value );
});
});
附加说明
现在我不知道#Grid1
是否在#showgrid
内,但如果是这种情况,则需要使用live()
方法!
$("#Grid1").live( 'click' , function(e) {
// do something here as above...!
});
假设:
<div id="this_is_parent_of_Grid1">
<a id="Grid1" href="">click</a>
</div>
如果您使用表格 ,则或
<table><tr>
<td id="this_is_parent_of_Grid1"><a id="Grid1">click</a></td>
</tr></table>
答案 2 :(得分:0)
var value;
$("#rowid").click(function() {
value = $(this).value();
});
或者您可以尝试这样的事情:
var value;
$("#rowid").click(function() {
value = $(this).value();
$("#showgrid").html( $.load("/Names/Friends/Satish/" + value) );
});
答案 3 :(得分:0)
为什么不使用以下内容?
$("#Grid1").click(function(e) {
var value= $(e.target).parent().attr("id");
$("#Grid1").load('/Names/Friends/satish/' + value);
});
};
此代码仍然很脆弱,但可能会更多地满足您的需求。