我读过很多关于如何处理Javascript的onclick和jQuery的.click()的主题,但我不知道如何使用jQuery传递参数。
第一个选项- Javascript、HTML
The HTML
<input type="button" onclick="doAction(<?=$id?>,'order');" />因此,在JS中我可以做到
function doAction(id,type){
//do something here
}第二个选项- jQuery、HTML
The HTML
<input type="button" id="trigger" />所以jQuery变成了
$("#trigger").click(function() {
//do something here
});我是否必须做一些类似的事情(在这种情况下,我如何知道id和type的值?)
$("#trigger").click({id: "???", type: "????"}, other_function);
function other_function(event){
id = event.data.param1;
type = event.data.param2;
}我是否必须通过使用
HTML
<input type="hidden" id="id" value="<?=$id?>" />
<input type="hidden" id="type" value="order" />
jQuery
$("#trigger").click(function(){
var id = $("#id").val();
var type = $("#type").val();
//do something
});我希望避免使用onclick(),因为我已经了解到应该避免使用onclick()。我只需要一种合适的方法来传递参数,就像我使用onclick()所做的那样。
发布于 2013-01-18 23:39:57
您可以使用数据将data()传递给事件。
<input type="hidden" id="id" data-idatt="123" />
<input type="hidden" id="type" value="order" />
$("#trigger").click(function(){
var id = $("#id").data("idatt").val();
});发布于 2013-01-18 23:41:17
您不需要从外部获取参数,也不需要隐藏字段
$("#trigger").click(function(){
var id = <?=$id?>;
//do something
});发布于 2013-01-18 23:42:01
使用chrome打开控制台并尝试如下所示
$(#trigger);
$(#trigger).click(function(e) {
console.log(
$(this),
$(this).attr('type')
);
});该函数有一个名为this的隐藏变量,它是您触发事件的元素。
https://stackoverflow.com/questions/14402278
复制相似问题