抱歉,这让我抓狂,但当我将按钮切换到链接时,我的模式对话框不显示。基本上,对于这个功能(很抱歉,我不得不删除公司敏感数据,所以一些代码丢失了,但仍然有效),我只想让编辑器放入一个带有id或class的链接,该链接不起作用,但地址会打开一个对话框,里面有地址url。
我有一个按钮的工作,但这不与链接和下面的代码工作。他们还手动将链接输入到p-tag中,并想知道是否可以通过href捕获它。
$(function() {
var dialog, form,
tips = $( ".validateTips" );
function addUser() {
var valid = true;
allFields.removeClass( "ui-state-error" );
valid = valid && checkLength( name, "username", 3, 16 );
valid = valid && checkLength( email, "email", 6, 80 );
valid = valid && checkLength( password, "password", 5, 16 );
valid = valid && checkRegexp( name, /^[a-z]([0-9a-z_\s])+$/i, "Username may consist of a-z, 0-9, underscores, spaces and must begin with a letter." );
valid = valid && checkRegexp( email, emailRegex, "eg. ui@jquery.com" );
valid = valid && checkRegexp( password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9" );
if ( valid ) {
$( "#users tbody" ).append( "<tr>" +
"<td>" + name.val() + "</td>" +
"<td>" + email.val() + "</td>" +
"<td>" + password.val() + "</td>" +
"</tr>" );
dialog.dialog( "close" );
}
return valid;
}
dialog = $( "#dialog-form" ).dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
});
form = dialog.find( "form" ).on( "submit", function( event ) {
event.preventDefault();
addUser();
});
$( "#create-link" ).a().on( "click", function(e) {
e.preventDefault();
dialog.dialog( "open" );
});
});
<div><a href="https://xyz" id="create-link">Perma-link</a></div>
<div id="dialog-form" title="Link Address">
<p class="validateTips">https://xyz</p>
</div>注意-我完全理解,这是奇怪的捕获一个模式框中的链接,但我们必须这样做,因为供应商不显示完整的活动链接在网址。因此,当我们的用户尝试分享页面时,他们会在浏览器中复制url,这不会给其他用户带来任何影响。这里的链接将他们带到永久页面。我知道这很愚蠢,但这是必要的。
发布于 2015-08-07 04:26:03
当您使用jQuery选择器查找元素时,它将返回一个jQuery对象,您可以在该对象上调用jQuery定义的方法。
在你的代码中,你有:
$( "#create-link" ).a().on( "click", function(e) {
e.preventDefault();
dialog.dialog( "open" );
});$("#create-link")返回的对象是html中a标记的jQuery对象。您只能在该对象上调用jQuery方法。据我所知,在jQuery或jQuery UI中没有定义a()方法。把那个去掉。
至于链接本身,添加一个链接然后阻止单击该链接的操作是没有意义的。基于这条评论,我猜你没有理解需求:
用户界面的家伙想让我把它作为一个链接。最后一部分是将按钮移动到一个链接,然后使href自动填充validateTips部分
在我看来,他们想让你给用户提供一个链接。
发布于 2015-08-07 04:32:21
我不认为当你点击链接时,你的点击事件会被触发。为什么不说
$( "#create-link" ).on( "click", function(e) {
e.preventDefault();
dialog.dialog( "open" );
});只需删除a()。应该能解决问题。
https://stackoverflow.com/questions/31864867
复制相似问题