如果您希望消息是动态的,您将要使用data-attributes
:
<input class='message-button-' type="submit" data-message="My Message" />
然后在一个单独的 javascript 文件中:
// equivalent of $(document).ready(function(){...
$(function(){
// Functionality starts here
$('.message-button').on('click', function(e){
alert($(this).data('message'));
})
});
现在该函数将在任何时候单击带有类的按钮时执行.message-button
,并且它将使用自定义属性 data-message 来显示一条消息。
希望这可以帮助!:)
更新:
请注意,不显眼地执行 javascript 被认为是最佳实践。有些人提到仍然onclick
像您在示例中所做的那样使用该属性,不要那样做。.on('click', function(){})
使用 jquery 的方法像我在这里展示的那样绑定事件。
如果您的点击项目是一个锚标记<a>
,那么您可以通过使用以下方式阻止 href 被关注e.preventDefault
:
$('a').on('click', function(e){
e.preventDefault()
})
另外,如果您需要知道,这$('.message-button')
是使用 css 选择器来抓取 dom 元素。任何有效的 CSS 选择器通常都可以在那里工作。
一步步
首先,我们需要将所有代码包装在一个由 jQuery 提供的函数中,该函数等待文档准备好处理 javascript 操作和 dom 操作。长格式版本是$(document).ready(function(){ /* CODE GOES HERE */ })
,但我使用的版本是快捷方式$(function({ /* CODE GOES HERE */ })
:
$(function(){
})
接下来,我们需要将一个事件绑定到我们的按钮。因为我们已经给了它 class .message-button
,所以我们可以使用 jQuery 来抓取该元素并将 'click' 事件绑定到它:
$(function(){
// Functionality starts here
$('.message-button').on('click', function(e){
// Code here executes when the input button is clicked
})
});
事件处理程序内部this
重新绑定以直接指向触发事件的 HTML 元素。包装在 $() 中使我们可以访问 jquery 方法。因此: $(this) 使用非常频繁。jQuery 为我们提供了.data()
访问data-*
元素上的任何方法并为我们提供值的方法,这就是它alert()
正在做的事情。
$(function(){
// Functionality starts here
$('.message-button').on('click', function(e){
alert($(this).data('message'));
})
});