【发布时间】:2013-12-24 05:46:12
【问题描述】:
我有一个 php 站点和一个外部 js 文件(我的所有 js 函数都在其中),当然还有 jquery。
在链接上我想调用一个js-函数并为这个函数提供两个变量,函数完成后我想禁用这个链接(视觉上)。
PHP 文件
<a href="javascript:void(0);"
class="btn btn-primary btn-lg btn-circle btn-shadow btn-text btn-bookmark"
onclick="bookmark_item( <?=$item_id;?>, <?=$user_id;?> );">
<span class="icon_heart_alt"></span> Save
</a>
JS 文件
function bookmark_item(item_id, user_id);
$(.btn-bookmark).attr('disabled','disabled');
e.preventDefault();
return false;
});
但我不想在我的a 链接中使用这个onclick="..." 短语,我想在我的js 文件中拥有一个时尚的$(document).on('click', 'a', function(){ ... }); 函数。但是如何在我的$(document).on... 函数中放置一个$(this) 选择器呢?我需要这个disable 我的a href 按钮,而且我有很多,所以硬编码ids 或类似的东西真的很难完成。
【问题讨论】:
-
jQuery 库确保
this引用被单击的<a>元素。你不必做任何特别的事情;这就是它的工作原理。 -
啊...不知道这个事实。我会试试看。但是我怎样才能提供一个带有两个变量的
$(document).on(...)函数呢?或者这只是可能与onclick="..."声明? -
$(document).on('click', 'a', function() { ... })将覆盖页面上的 any<a>标记。当实际的“点击”事件发生时,实际涉及的<a>标签将在调用您的处理程序时设置为this的值。 -
您正在尝试将 $item_id 和 $user_id 传递给 javascript 函数?您可以为此创建自己的属性。例如,在 PHP 文件中,您可以添加 itemid="=$item_id;?>" 并在 js 函数中使用 $(this).attr("itemid");检索它。
-
它并不真正依赖于 HTML5。浏览器会将其渲染得很好,只是使其“无效”,这没有太多含义。你可以阅读更多here。我添加了一个答案以进一步澄清我的 cmets。
标签: javascript php jquery function jquery-selectors